Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка Windows 2000/XP/2003 » CMD не хочет убивать сам себя.

Ответить
Настройки темы
CMD не хочет убивать сам себя.

Аватара для Grenky

Пользователь


Сообщения: 84
Благодарности: 1

Профиль | Отправить PM | Цитировать


Изменения
Автор: Grenky
Дата: 30-06-2005
Значит так!
При установке я выбираю в BCDW нужный мне способ установки
Код: Выделить весь код
[MenuItems]   
 \i386\setupldr.bin
и соответственно выбирается свой winnt.sif в котором есть строка
Код: Выделить весь код
[GUIRunOnce]
	command1 = "%SystemDrive%\Install\COMPANY1.cmd"
Которая как видно запускает мой файл COMPANY1.cmd. В нем как раз и содержатся лишь то что надо установить лишь для конкретного winnt.sif.
(а в RunOnceEx.cmd ставятся стандарные для всех установак приложения)
Вот его содержание:
Код: Выделить весь код
cmdow @ /HID
@echo off

FOR %%d IN (c d e f g h i j k l m n o p q r s t u v w x y z) DO IF EXIST %%d:\WIN51 SET CDROM=%%d:

START /WAIT %CDROM%\install\sav\COMPANY1.exe
START /WAIT %CDROM%\install\sav\sav.exe
START /WAIT %systemdrive%\Install\SAV\SAV.msi /QN RUNLIVEUPDATE=0 REBOOT=ReallySuppress
START /WAIT %systemdrive%\Cleanup.cmd
EXIT
В нем мы сначала ищем CD (другой способ не приемлем, т.к. файл запускается не с компакт диска), запускаем два ЕХЕ-шника (первый распаковывает необходимый для нас GRC.DAT для нашей COMPANY1, а второй распаковывает архив с SAV), устанавливаем SAV-антивирус. Далее запускается чистельщик Cleanup.cmd с таким кодом :
Код: Выделить весь код
cmdow @ /HID

RD /S /Q %systemdrive%\Install\
erase cleanup.cmd /s /q
del cleanup.cmd /s /q
EXIT
Так вот он папку убивает, а себя не хочит. Erase и Del использовал вместе ради эксперимента, но нет реакции.

Ваши советы.



ЗЫ: Зачам такой изврат? А чтоб избавиться от необходимости выбора нужного GRC.DAT при установке. А точнее избавиться от мною придуманного способа. Идея лежит тут -
http://forum.oszone.net/showthread.p...6690#post36690

-------
Русские на войне своих не бросают!


Отправлено: 08:23, 30-06-2005

 

(*.*)


Сообщения: 36544
Благодарности: 6691

Профиль | Сайт | Отправить PM | Цитировать


Цитата:
Заметили скока Vadikan-а я не спрашивал про параметр %0 - молчит как партизан
Kxe, открываем командую строку и в ней печатаем FOR /? и идем до последнего блока документации. Или смотрим в этой ветке. Ну и напоследок, взято из темы на MSFN, она сейчас на самом верху
Код: Выделить весь код
@Echo OFF
SetLocal enableextensions
CLS
Echo.
Echo     I am file (not yet expanded):         %0
Echo     My Expanded File Name:                %~n0
Echo     My Expanded Extension:                %~x0
Echo     My Expanded Name and Extension:       %~nx0
Echo     My Expanded Drive:                    %~d0
Echo     The Expanded Root of My Drive:        %~d0\
Echo     Some Other Expanded Path on My Drive: %~d0\SomeOtherPath
Echo     My Expanded Path:                     %~p0
Echo     My Expanded Drive and Path:           %~dp0
Echo.
Pause

EndLocal
GoTo :EOF

-------
Канал Windows 11, etc | Чат @winsiders


Отправлено: 11:03, 30-06-2005 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Moderator


Сообщения: 53441
Благодарности: 15497

Профиль | Отправить PM | Цитировать


Grenky
В твоем варианте директория Install не удалится, потому что файл COMPANY1.cmd в ней.

В секции GUIRunOnce можно указать несколько команд.
Поэтому я и предложил:
Код: Выделить весь код
[GUIRunOnce]
	command1 = "%SystemDrive%\Install\COMPANY1.cmd"
	command2 = "%SystemRoot%\system32\Cmd.exe /C RD /S /Q %SystemDrive%\Install\"
Совершенно лишний пост.. На самом деле все прекрасно удаляется.. Нечаянно ввел в заблуждение Vadikan'а :)

Последний раз редактировалось Petya V4sechkin, 30-06-2005 в 14:01.


Отправлено: 11:05, 30-06-2005 | #12


Аватара для Grenky

Пользователь


Сообщения: 84
Благодарности: 1

Профиль | Отправить PM | Цитировать


to Petya V4sechkin
Протестил... Удалился
В твоем варианте я не уверен что command2 будет ждать отработку command1.
Поправь если ошибаюсь.
to Vadikan
спасибо за разъяснение

-------
Русские на войне своих не бросают!


Отправлено: 11:15, 30-06-2005 | #13


(*.*)


Сообщения: 36544
Благодарности: 6691

Профиль | Сайт | Отправить PM | Цитировать


Grenky
Нда, причина как раз и была в
Цитата:
директория Install не удалится, потому что файл COMPANY1.cmd в ней.
Ты же можешь cleanup.cmd в любую другую директорию поместить, хоть в %windir%\temp и оттуда уже запускать. Он и директорию Install удалит и сам себя потом. Я же сказал, что
Цитата:
я ветку целиком не читал
LOL

-------
Канал Windows 11, etc | Чат @winsiders


Отправлено: 11:18, 30-06-2005 | #14


Аватара для Grenky

Пользователь


Сообщения: 84
Благодарности: 1

Профиль | Отправить PM | Цитировать


см. мой первый пост. Это первоначальный вариант:
Цитата:
START /WAIT %systemdrive%\Cleanup.cmd
он и так в корне.

протестил те варианты что описал здесь все работает.

-------
Русские на войне своих не бросают!


Отправлено: 11:25, 30-06-2005 | #15


(*.*)


Сообщения: 36544
Благодарности: 6691

Профиль | Сайт | Отправить PM | Цитировать


Grenky
Ладно, я выпил достаточно пива, чтобы об'яснить популярно Вместо
Код: Выделить весь код
START /WAIT %systemdrive%\Cleanup.cmd
надо использовать
Код: Выделить весь код
CALL %systemdrive%\Cleanup.cmd
Тогда первый файл вызовет второй, а сам продолжит работу, т.е. закроется (вызываем-то мы последней командой). Тогда второму файлу ничего не помешает удалить директорию, содержащую первый файл, а потом и сам себя.

Конечно, протестировать GuiRunOnce я не могу, но только что проверил RunOnceEx. Итак, в %systemdrive%\test помещаем test1.cmd
Код: Выделить весь код
cmdow @ /HID
@echo off

echo this is a line from the test1,cmd file >> %systemdrive%\file.txt
call %systemdrive%\test2.cmd

exit
В корень %systemdrive% кладем test2.cmd
Код: Выделить весь код
cmdow @ /HID
@echo off

RD /S /Q %systemdrive%\test
DEL %0

exit
Создаем RunOnce.cmd
Код: Выделить весь код
cmdow @ /HID
@echo off

SET KEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx

REG ADD %KEY% /V TITLE /D "Bla-bla-bla" /f

REG ADD %KEY%\001 /VE /D "Bla-bla-bla" /f
REG ADD %KEY%\001 /V 1 /D "%systemdrive%\test1.cmd" /f

exit
запускаем его, выходим из системы и снова заходим. Папки %systemdrive%\test вместе с test1.cmd как не бывало. test2.cmd тоже исчез, зато есть %systemdrive%\file.txt, в котором одна строка, подтверждающая, что test1.cmd отработал.

Ваше здоровье :beer:

-------
Канал Windows 11, etc | Чат @winsiders


Отправлено: 11:46, 30-06-2005 | #16


Аватара для Grenky

Пользователь


Сообщения: 84
Благодарности: 1

Профиль | Отправить PM | Цитировать


хех нехотит слухать и все
я говорю всё работает Без кучи дополнительный cmd (см. выше)

-------
Русские на войне своих не бросают!


Отправлено: 12:33, 30-06-2005 | #17



Moderator


Сообщения: 53441
Благодарности: 15497

Профиль | Отправить PM | Цитировать


Grenky
Теперь ясно, где собака порылась.
Изначально ошибка была в файле cleanup.cmd, строка "del cleanup.cmd" - естественно, ведь текущая директория совсем не %SystemDrive%. Поэтому и файл не удалялся.
А "del %0" замечательно работает, как и предлагал Vadikan.
И "rd /S /Q %systemdrive%\Install\" тоже прекрасно работает, даже из батника, который в этой же директории находится. Как и предлагал D@nil.
А я че-то затупил, извиняюсь :)

Отправлено: 14:15, 30-06-2005 | #18



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка Windows 2000/XP/2003 » CMD не хочет убивать сам себя.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Поздравляю сам себя APOSTOL Флейм 1782 17-06-2024 20:23
WINS/Browse - Обозреватель сети рабочей группы не видит сам себя andriod Сетевые технологии 2 10-07-2008 22:49
Скрипт который может сам себя обновить BuilderMan Вебмастеру 8 30-09-2006 13:44
В Wi-Fi сети два компа и АР. Один комп не видит сам себя… Serafon Сетевые технологии 2 29-05-2006 10:25
Radmin_v2.2 Могу ли я сам себя-- UTU Сетевые технологии 2 02-10-2005 10:20




 
Переход