Показать полную графическую версию : [решено] Файл НЕ самоудаляется после завершения комманд..
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
я так понимаю что он должен удалится в конце, но этого не происходит... Я что то не правильно пишу или это глюк?
П.С. Не надо меня отправлять в гугл/википедия и так далее, только что оттуда, ответа на свой вопрос не нашёл...
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
Cobra_1_Stas, используйте команду call для вызова других пакетных файлов. /Q %systemroot%\Temp\hkcu2.reg »
А это что такое?
Попробуйте cd ..
rmdir /S /Q %systemroot%\Temp Всегда пользуюсь такой конструкцией, проблем никогда не было...
И вообще, зачем %systemroot%\Temp в кавычки заключать? Пробелов в пути я тут не вижу.
Cobra_1_Stas
11-03-2008, 22:30
Vadikan, повторное применение твиков реестра =/
YikxX, зачем мне удалять директорию TEMP если мне нужно удалить файл который находится на рабочем столе (этот файл называется ManualRun.cmd его содержание в первом посте)
Попробуйте так
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
я так понимаю что он должен удалится в конце, но этого не происходит... Я что то не правильно пишу или это глюк? »
зачем мне удалять директорию TEMP если мне нужно удалить файл который находится на рабочем столе (этот файл называется ManualRun.cmd его содержание в первом посте) »
кавычки DEL /F /Q "%0" не пробовали? В пути к рабочему столу обычно есть пробелы. Или попробуйте выделить только имя файла и расширение из %0
DPavlik82, %0 - эта переменная имеется в виду? где-то прописана ранее? »
Изучите матчасть. Это полный путь к батнику (да и любой другой программы из нее самой).
Cobra_1_Stas, а теперь приведите мне место из одного из ваших постов, из которого я мог бы узнать, что батник находится на рабочем столе? В экстрасенсы меня записали? ;) Похвально конечно, но вряд ли это так. =)
Cobra_1_Stas
12-03-2008, 05:06
vserd, "В пути к рабочему столу обычно есть пробелы" так я вроде бы путь к рабочему столу и не прописывал :unsure:
YikxX, то что файл находится на рабочем столе это не главное, главное было то что не срабатывала команда "DEL /F /Q %0" ;)
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
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC