PDA

Показать полную графическую версию : [решено] Файл НЕ самоудаляется после завершения комманд..


Cobra_1_Stas
11-03-2008, 16:00
Содержание файла:


cmdow @ /HID
@echo off

start /D"%systemroot%\Temp" DelLnkFav.cmd
/Q %systemroot%\Temp\hkcu2.reg
%systemroot%\Temp\QuickLaunch.exe
%systemroot%\Temp\DelTemp.cmd
DEL /F /Q %0


я так понимаю что он должен удалится в конце, но этого не происходит... Я что то не правильно пишу или это глюк?

П.С. Не надо меня отправлять в гугл/википедия и так далее, только что оттуда, ответа на свой вопрос не нашёл...

LonerD
11-03-2008, 17:07
Cobra_1_Stas, вообще сложно понять что требуется сделать в этом файле и какой именно файл должне удалиться в конце?

Первая строчку, может, не мудрить и сделать проще:
start %systemroot%\Temp\DelLnkFav.cmd

Вторая, как я понял, должна выглядеть так:
REGEDIT /S %systemroot%\Temp\hkcu2.reg

а что имеется в виду в последней - не ясно:
DEL /F /Q %0

%0 - эта переменная имеется в виду? где-то прописана ранее?
ежели через переменную, то так
SET 0=путь к файлу\имя файла
DEL /F /Q %0%

или не мудрить и сделать проще:
del /F /Q путь к файлу\имя файла

Cobra_1_Stas
11-03-2008, 20:04
DPavlik82, ничего сложного!
Этот файл запускает 4 файла (DelLnkFav.cmd, hkcu2.reg, QuickLaunch.exe, DelTemp.cmd) и потом должен самоликвидироваться...

На счёт последней строчки в ней то и проблема (в других файлах у меня всё срабатывало нормально, скорее всего это из за того что нужно как то закончить команду start).

П.С. Почитайте статью http://oszone.net/6159

Самоудаляюшийся пакетный файл
Если же сам пакетный файл, запускающийся с жесткого диска, вам больше не нужен, можно обеспечить его самоудаление при помощи уже знакомой команды DEL. Для этого в конце пакетного файла нужно добавить команду

Del /F /Q %0

Vadikan
11-03-2008, 20:17
Cobra_1_Stas, используйте команду call для вызова других пакетных файлов. /Q %systemroot%\Temp\hkcu2.reg »
А это что такое?

YikxX
11-03-2008, 22:04
Попробуйте cd ..
rmdir /S /Q %systemroot%\Temp Всегда пользуюсь такой конструкцией, проблем никогда не было...

И вообще, зачем %systemroot%\Temp в кавычки заключать? Пробелов в пути я тут не вижу.

Cobra_1_Stas
11-03-2008, 22:30
Vadikan, повторное применение твиков реестра =/

YikxX, зачем мне удалять директорию TEMP если мне нужно удалить файл который находится на рабочем столе (этот файл называется ManualRun.cmd его содержание в первом посте)

Vadikan
11-03-2008, 22:56
Попробуйте так
cmdow @ /HID
@echo off

call %systemroot%\Temp\DelLnkFav.cmd
regedit /s %systemroot%\Temp\hkcu2.reg
start /wait %systemroot%\Temp\QuickLaunch.exe
call %systemroot%\Temp\DelTemp.cmd
DEL /F /Q %0

Cobra_1_Stas
11-03-2008, 23:37
Vadikan, хм... Спасибо! Вроде бы сработало :D

vserd
12-03-2008, 01:17
я так понимаю что он должен удалится в конце, но этого не происходит... Я что то не правильно пишу или это глюк? »

зачем мне удалять директорию TEMP если мне нужно удалить файл который находится на рабочем столе (этот файл называется ManualRun.cmd его содержание в первом посте) »
кавычки DEL /F /Q "%0" не пробовали? В пути к рабочему столу обычно есть пробелы. Или попробуйте выделить только имя файла и расширение из %0

DPavlik82, %0 - эта переменная имеется в виду? где-то прописана ранее? »
Изучите матчасть. Это полный путь к батнику (да и любой другой программы из нее самой).

YikxX
12-03-2008, 01:34
Cobra_1_Stas, а теперь приведите мне место из одного из ваших постов, из которого я мог бы узнать, что батник находится на рабочем столе? В экстрасенсы меня записали? ;) Похвально конечно, но вряд ли это так. =)

Cobra_1_Stas
12-03-2008, 05:06
vserd, "В пути к рабочему столу обычно есть пробелы" так я вроде бы путь к рабочему столу и не прописывал :unsure:

YikxX, то что файл находится на рабочем столе это не главное, главное было то что не срабатывала команда "DEL /F /Q %0" ;)

vserd
12-03-2008, 10:20
Cobra_1_Stas, "В пути к рабочему столу обычно есть пробелы" так я вроде бы путь к рабочему столу и не прописывал »
Вставьте в свой батник
первыми строками
echo %0
pause
и посмотрите на результат. У меня пробелы стоят там где нужно.
Правда я тоже прогнал, кавычки там автоматом добавлены. Странно, раньше такого не замечал.... хотя и на рабочий стол стараюсь ничего не выкладывать.

Cobra_1_Stas
12-03-2008, 12:26
vserd, бррр... не понял, к чему это? Зачем мне делать паузу (Press any key to continue...)? Наоборот мне нужно чтобы всё сделалось автоматом и ещё чтобы по окончанию комп перегрузился (чтобы твики реестра заработали).

П.С. Я объясню для чего мне это всё чтобы вы поняли:
В ивритском виндоусе не срабатывают некоторые твики реестра, не срабатывает RunOnceEx, не добавляется ярлык в QuickLaunch и т.д... Вот, для этого я на рабочий стол ставлю файл, при открытие которого все эти действия выполняются автоматом (В русской винде и в английской всё срабатывает автоматом и не приходится делать это вручную)




© OSzone.net 2001-2012