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

Показать сообщение отдельно

Аватара для Nun-Nun

Ветеран


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

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


Немного переделал скрипт (убрал кавычки и привязку к конкретной папке), теперь почти то, что надо. Поправьте, если я не прав.
Код: Выделить весь код
@Echo Off
rem Set Source=C:\Source
Set ExecutableFile=start /wait .\
Set Params=/Q /O /N /Z

For /F "Tokens=*" %%A In ('Dir /B /AD') Do (
	For /F "Tokens=*" %%B In ('Dir /B %%A\*.exe 2^>nul') Do (
		Echo ;%%A>>list.cmd
		Echo %ExecutableFile%%%A\%%B %Params%>>list.cmd
	)
)
Echo.
Echo Названия папок и файлов скопированы в файл list.cmd
Echo.
Pause
Есть несколько пожеланий по поводу скрипта:
1) можно ли сделать, чтобы итоговый файл list.cmd сохранялся с русской кодировкой 866 ?
2) не могли бы Вы в скрипте прописать не только exe-файлы, но и msi-файлы? а то иногда, кроме exe-шников и msi попадаются.

P.S. Для большей информативности вводных данных:
1) глубина вложенности папок может быть более одного уровня;
2) исполняемая команда exe-файлов выглядит так: start /wait .\
3) параметры для exe-файлов выглядят так: /Q /O /N /Z
Командная строка для msi-файлов выглядит несколько иначе: "исполняемая команда" "Название папки" "параметры"
4) исполняемая команда выглядит так: start /D.\
5) параметры выглядят так: /wait MSIEXEC /I "имя msi-файла" ALLUSERS=TRUE REBOOT=SUPPRESS /QN

-------
Свобода не означает вседозволенность.


Последний раз редактировалось Nun-Nun, 21-09-2010 в 16:01.


Отправлено: 14:54, 21-09-2010 | #3