Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Автоматическая установка Windows 2000/XP/2003 (http://forum.oszone.net/forumdisplay.php?f=32)
-   -   [решено] Файл НЕ самоудаляется после завершения комманд.. (http://forum.oszone.net/showthread.php?t=102552)

Cobra_1_Stas 11-03-2008 16:00 757882

Файл НЕ самоудаляется после завершения комманд..
 
Содержание файла:

Код:

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 757917

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 758074

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 758081

Cobra_1_Stas, используйте команду call для вызова других пакетных файлов.
Цитата:

Цитата Cobra_1_Stas
/Q %systemroot%\Temp\hkcu2.reg »

А это что такое?

YikxX 11-03-2008 22:04 758176

Попробуйте
Код:

cd ..
rmdir /S /Q %systemroot%\Temp

Всегда пользуюсь такой конструкцией, проблем никогда не было...

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

Cobra_1_Stas 11-03-2008 22:30 758199

Vadikan, повторное применение твиков реестра =/

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

Vadikan 11-03-2008 22:56 758220

Попробуйте так
Код:

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 758240

Vadikan, хм... Спасибо! Вроде бы сработало :D

vserd 12-03-2008 01:17 758272

Цитата:

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

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

кавычки DEL /F /Q "%0" не пробовали? В пути к рабочему столу обычно есть пробелы. Или попробуйте выделить только имя файла и расширение из %0

DPavlik82,
Цитата:

Цитата DPavlik82
%0 - эта переменная имеется в виду? где-то прописана ранее? »

Изучите матчасть. Это полный путь к батнику (да и любой другой программы из нее самой).

YikxX 12-03-2008 01:34 758275

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

Cobra_1_Stas 12-03-2008 05:06 758310

vserd, "В пути к рабочему столу обычно есть пробелы" так я вроде бы путь к рабочему столу и не прописывал :unsure:

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

vserd 12-03-2008 10:20 758412

Cobra_1_Stas,
Цитата:

Цитата Cobra_1_Stas
"В пути к рабочему столу обычно есть пробелы" так я вроде бы путь к рабочему столу и не прописывал »

Вставьте в свой батник
первыми строками
echo %0
pause
и посмотрите на результат. У меня пробелы стоят там где нужно.
Правда я тоже прогнал, кавычки там автоматом добавлены. Странно, раньше такого не замечал.... хотя и на рабочий стол стараюсь ничего не выкладывать.

Cobra_1_Stas 12-03-2008 12:26 758522

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

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


Время: 07:31.

Время: 07:31.
© OSzone.net 2001-