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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Автоматическая установка Windows 2000/XP/2003 (http://forum.oszone.net/forumdisplay.php?f=32)
-   -   Проблема с Cleanup.cmd (http://forum.oszone.net/showthread.php?t=53627)

armandi 08-09-2005 09:10 354083

Проблема с Cleanup.cmd
 
Помогите решить проблемку... у меня не получается удалить ярлыки с помощью cleanup.cmd ... происходит только перезагрузка
Версия Windows XP Pro русская локализованная корпоративная

Мой RUNONSE
Код:

@cmdow @ /HID
@echo off

REG ADD %KEY% /V TITLE /D "Installing Applications" /f

......
REG ADD %KEY%\025 /VE /D "WinRAR 3.30" /f
REG ADD %KEY%\025 /V 1 /D "%CDROM%\Software\wrar330ru.exe /s" /f
.......

REG ADD %KEY%\100 /VE /D "Cleaning Up and Rebooting" /f
REG ADD %KEY%\100 /V 1 /D "%systemdrive%\install\cleanup.cmd" /f

EXIT

Файл Cleanup.cmd лежит в $OEM$\$1\Install

Содержание его:
Код:

@cmdow @ /HID
@echo off

shutdown.exe -r -f -t 5 -c "The system will reboot in 5 seconds."

DEL "%AllUsersProfile%\Рабочий стол\AIDA32.lnk"
DEL "%AllUsersProfile%\Рабочий стол\Nero StartSmart.lnk"

RD /S /Q "%AllUsersProfile%\Главное меню\Programs\Java Web Start"
RD /S /Q "%AllUsersProfile%\Главное меню\Programs\Nero\Инструкция пользователя"
RD /S /Q "%AllUsersProfile%\Главное меню\Каталог Windows.lnk"

net user aspnet /delete

EXIT

Так вот файл запускается, но идет просто через 5 сек перезагрузка, а удаление ярлыков и директорий не происходит... уже что только не делал... В командной строке такие параметры проходят да и то не всегда... Если ярлык создается для конкретного пользователя, то его удаления не происходит... А при автоматической - вообще полное игнорирование

В директории Documents.. лежат три папки All Users, QQQ (пользователь) и Default User

Yelisander 08-09-2005 10:31 354100

Привет!
Привожу пример своего файла, у мня все работает:

Код:

IF EXIST %WINDIR%\CMDOW.exe cmdow @ /HID
shutdown.exe -r -f -t 30 -c "Don`t panic. The system will reboot in 30 seconds."

del /S /Q "%AllUsersProfile%\Главное меню\Windows Update.lnk"
del /S /Q "%AllUsersProfile%\Главное меню\Выбор программ по умолчанию.lnk"
del /S /Q "%AllUsersProfile%\Главное меню\Каталог Windows.lnk"
del /S /Q "%AllUsersProfile%\Главное меню\Программы\Windows Messenger.lnk"
del /S /Q "%UserProfile%\Главное меню\Программы\Удаленный помощник.lnk"
del /S /Q "%AllUsersProfile%\Рабочий стол\Adobe Reader 7.0.lnk"
del /S /Q "%AllUsersProfile%\Рабочий стол\Nero StartSmart.lnk"
del /S /Q "%UserProfile%\Главное меню\Программы\Автозагрузка\Total Commander.lnk
del /S /Q "%UserProfile%\Главное меню\Программы\AkelPad.lnk
del /S /Q "%AllUsersProfile%\Рабочий стол\Light Alloy.lnk
del /S /Q C:\RunOnceEx.cmd


armandi 08-09-2005 10:51 354105

Спасибо за помощь...
я про UserProfile не догадался...хотя остальное у меня все так... буду пробовать.... потом сообщу

D@nil 08-09-2005 11:02 354112

armandi
Кодировту на досовскую менял?

armandi 09-09-2005 12:36 354365

Yelisander

Не помого твой файл почему-то...

D@nil

Нет, не менял... Простите за мое незнание.... но как кодировку поменять и где?
Буду премного благодарен если объясните

biork 10-09-2005 02:09 354525

Риторический вопрос:
а почему строка с командой shutdown.exe выше строчек с удалением? Ведь не факт, что при маленьком тайминге (-t 0) все эти команды успеют выполниться до перенгрузки... :-)

Vadikan 10-09-2005 05:33 354541

biork
Вопрос действительно риторический. У меня задержка в 30 секунд в примере, что более чем достаточно для выполнения последующих команд. Вы можете ставить команду куда угодно.

armandi 10-09-2005 14:10 354581

Т.е. выполнение команд идет во время отсчета времени?
Я думал, что отсчет времени начинается после выполнения команд, поэтому и сократил время... А поставил в начале, потому что в примерах сказано об выполнении команд с последующей перезагрузкой..
Спасибо хоть просветили

Vadikan 10-09-2005 18:01 354613

Цитата:

Т.е. выполнение команд идет во время отсчета времени?
Конечно :)

biork 11-09-2005 02:29 354676

Не... я просто не понял зачем задавать длинный промежуток времени (с пугающей табличкой) и втискивать в него ряд задачь? Не проще ли сначала выполнить эти задачи и не гадать сколько времени требуется на их выполнение, а в конце просто перегрузить с параметрами -r -f -t 0. Или я что-то не так понимаю?

Ещё один вопрос почти по теме: как сделать так, чтобы при перегрузке или выключении виндовс штатными средствами (пуск/выключить компьютер...) выполнялась команда очистки временных папок?

Vadikan 11-09-2005 03:16 354685

biork
Цитата:

(с пугающей табличкой)
В пугающую табличку можно внести текст по желанию. Например, благодарность сайту unattended.oszone.net и лично мне :)
Цитата:

как сделать так, чтобы при перегрузке или выключении виндовс штатными средствами (пуск/выключить компьютер...) выполнялась команда очистки временных папок?
Использовать пакетный файл с командой DEL.

biork 11-09-2005 03:41 354690

Цитата:

Использовать пакетный файл с командой DEL.
это понятно... куда его сунуть? :)



P.S. Благодарности я лучше выражу здесь! а пугающую табличку всё-таки уберу...

Vadikan 11-09-2005 05:39 354693

Так в него же можно включить команду на выключение компьютера. Ну точно такой же файл как в примере, только удаляет содержимое временных папок. Им и выключать/перезагружать.

armandi 12-09-2005 08:23 354831

Все спасибо всем я разобрался ...
ИТОГ
Количество времени необходимое для удаление ярлыков составляет меньше секунды, так что ставить полминуты излишне... Можно также поставить в конце файла cleanup.cmd....
Не работал он же вследствии непонимания DOSом кирилицы. Это все исправляется утилитой UniRed c необходимыми параметрами...
Так что время спокойно можно до 5 сек сокращать.

fanatf1 12-09-2005 08:56 354837

armandi

Дык какие именно параметры и какую кодировку ставил то??

armandi 12-09-2005 10:48 354864

fanatf1

Это для локализованной версии WinXP. Открываешь файл утилитой UniRed (ссылка где-то на сайте была). Называешь файл как нужно с расширением .cmd, выбираешь кодировку OEM, а тип файла (точно не помню) - параметр C и сохраняешь... вот и все...она автоматически перекодирует кирилицу в досовские шрифты

D@nil 12-09-2005 12:02 354897

fanatf1
Качни akelpad
Открываешь свой Cleanup.cmd и жмешь F6 (Кодировки > Сохранить в DOS-866)

biork 14-09-2005 02:46 355310

Что то не помогли мне эксперименты с кодировками... (Использовал akelpad, жал F6...)

так стирает:
Код:

del /s /q с:\Новаяпапка\Текстовыйдокумент.txt
а так - нет :-(
Код:

del /s /q с:\Новая папка\Текстовый документ.txt
пробелы не понимает что ли...

соответственно команда
Код:

del /S /Q %AllUsersProfile%\Рабочий стол\Nero StartSmart.lnk
так же не выполняется.

может их (пробелы) какими-то символами заменить можно?

qeraser 14-09-2005 08:05 355351

Примени ковычки.
Код:

del "%AllUsersProfile%\Рабочий стол\Nero StartSmart.lnk"

biork 19-09-2005 01:30 356416

Цитата:

Примени ковычки
Спасибо, дорогой!
Помогло :)

biork 09-11-2005 02:04 371734

Так... опять у меня проблема с ярлыками, а точнее с их удалением... а ещё точнее с синтаксисом что ли...
Кто может об'яснить - почему если нажать Пуск/выполнить, написать
Код:

cmd.exe /С del /S /Q "%AllUsersProfile%\Рабочий стол\ATI CATALYST.lnk"
, то всё работает, а если запустить .cmd файл с точно таким же содержанием, то - ни какого эфекта (шаманские пляски с кодировками не спасают).

P.S. Windows XP rus SP2 ++++

boss911 09-11-2005 03:00 371747

biork

А если *.cmd файл будет такого содержания в MS-DOS кодировке:
Код:

del "%AllUsersProfile%\Рабочий стол\ATI CATALYST.lnk"


Время: 09:08.

Время: 09:08.
© OSzone.net 2001-