Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Задачи на bat-файлах

Автор: Den_Klimov
Дата сообщения: 05.10.2006 18:50
Elroir

Цитата:
А если после удаления, создавать заново эту директорию?

Это не вариант. По очень многим причинам. Самые простые и банальные - атрибуты директории - к примеру только чтение, скрытый, системный, да и вообще вся информация о ней и с ней связанная будет удалена.

anatoliy27190 же хочет чтобы директорию не трогали вообще, а лишь очищали её содержимое!
Автор: Elroir
Дата сообщения: 05.10.2006 19:13
Den_Klimov
Понял.
anatoliy27190
Тогда так:

Код:
dir /s "c:\directory" > c:\delete.log
dir "c:\directory" /ad /b > c:\dirlist.txt
for /F %%i in (c:\dirlist.txt) do rd "c:\directory\%%i" /s /q
del /q "c:\directory\*.*"
del c:\dirlist.txt
Автор: Smitis
Дата сообщения: 05.10.2006 19:26
anatoliy27190

Цитата:
Мне нужно очищать общий сетевой ресурс - расшареную папку- в которой пользователи создают разные подпапки и файли.
Содержимое постоянно меняется поэтому указать какие именно подпапки удалить я не могу. Сответственно команда RD /Q /S удаляет саму папку что не приемлемо.

Перед удалением через rd/s/q сделай папку текущей командой cd/d или pushd
Автор: Elroir
Дата сообщения: 05.10.2006 20:08
Smitis

Цитата:
Перед удалением через rd/s/q сделай папку текущей командой cd/d или pushd
Чем именно это поможет?
Автор: Smitis
Дата сообщения: 05.10.2006 20:30
Elroir
Папка будет залочена. Будет выдано сообщение об ошибке, которое можно отправить в NUL.
Пример удаления папки c:\temp\dddd

Код:
@echo off
cd /d c:\temp\dddd
rd /s/q . 2> nul
Автор: Elroir
Дата сообщения: 05.10.2006 20:41
Smitis
Ты абсолютно прав
Автор: CoDeR
Дата сообщения: 05.10.2006 23:09
Столкнулся со странной ситуацией.
Хочу запустить игру (HoMM 5), но так, чтобы перед запуском загружался FRAPS. Пишу CMD следующего содержания:

Код: start C:\Tests\FRAPS\fraps.exe
start E:\Games\HEROES~1\bin\H5_Game.exe
Автор: Den_Klimov
Дата сообщения: 05.10.2006 23:16
Если нужно логирование удаления, добавляем строку dir /s >"%TEMP%\Delete.Log".
cd /d "%TEMP%\123"
dir /s >"%TEMP%\Delete.Log"
rd /s /q . 2> nul
Автор: AnexeR
Дата сообщения: 05.10.2006 23:44
anatoliy27190
Elroir
Den_Klimov
Smitis
Лучше использовать pushd popd как правильно предложил KapralBel. Тогда производится выход из каталога и восстанавливается статус кво. И последующие команды вроде del "1.txt" /f /q сработают так как запланировано (1.txt будет искаться в каталоге где находится сам батник, а не в каталоге из которого мы удаляем содержимое).
Пример:
pushd "%TEMP%\123"
dir /s >"%TEMP%\Delete.Log"
rd /s /q . 2> nul
popd
del "1.txt" /f /q

Окончательный скрипт для полного удаления содержимого любого каталога (без логирования):

pushd "%~dp0\123"
rd /s /q .
popd

%~dp0 - эта переменная вычисляет каталог в котором находится сам батник.
Да. Пробелы в конце строк не забываем убирать.
Автор: Elroir
Дата сообщения: 06.10.2006 00:09
CoDeR
У меня такое впечатление, что FRAPS просто не успевает запуститься.
Для задержки добавь строчку
for /L %%b in (1,1,5000) do @echo %%b >nul
(или любой другой способ задержки) после строчки запуска FRAPS и посмотри, что получится.
Если все нормально, меняй 5000 на меньшее значение.
P.S. Я надеюсь что это не несовместимость fraps и heroes?
Автор: Kronix
Дата сообщения: 06.10.2006 00:22
Восможно ли спомощью cmd файла получить список всех запущенных служб в тхт-файл?
Автор: Elroir
Дата сообщения: 06.10.2006 00:31
Kronix
Можно

Код:
@echo off
net start > services.txt
Автор: CoDeR
Дата сообщения: 06.10.2006 03:04
Elroir

Цитата:
У меня такое впечатление, что FRAPS просто не успевает запуститься.
Для задержки добавь строчку
for /L %%b in (1,1,5000) do @echo %%b >nul

Увы, не помогло...


Цитата:
P.S. Я надеюсь что это не несовместимость fraps и heroes?

Нет - это не несовместимость, т.к. запустив сначала одно, потом другое (или даже наоборот) все работает.

Убейте, не пойму в чем дело...
Автор: Kronix
Дата сообщения: 08.10.2006 09:45
спасибо!
Автор: Elroir
Дата сообщения: 08.10.2006 21:40
CoDeR
Может проблема из-за того, что не указана starting directory для игры?
Попробуй так:

Код:
start /DC:\Tests\FRAPS C:\Tests\FRAPS\fraps.exe
start /DE:\Games\HEROES~1\bin E:\Games\HEROES~1\bin\H5_Game.exe
Автор: topic
Дата сообщения: 09.10.2006 15:45
Получилось только так
net use x: \\10.16.29.37\c$ ПАРОЛЬ /USER:ДОМЕН\имяЮзера
move X:\document\1*.TXT \\10.11.29.4\IN\
net use x: /delete

Без монтирования диска не получилось
Автор: Venchik
Дата сообщения: 09.10.2006 18:22
Подскажите пожалуйста как запустить все [more=эти]F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2005.05
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2005.06
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2005.07
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2005.08
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2005.10
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2005.11
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2005.12
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2006.01
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2006.02
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2006.04
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2006.06
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2006.07
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2006.08
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2006.09
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2005.05\WindowsServer2003-KB898715-x86-enu.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2005.06\WindowsServer2003-KB890046-x86-enu.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2005.06\WindowsServer2003-KB896358-x86-enu.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2005.06\WindowsServer2003-KB896428-x86-enu.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2005.07\WindowsServer2003-KB901214-x86-ENU.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2005.08\WindowsServer2003-KB893756-x86-ENU.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2005.08\WindowsServer2003-KB899587-x86-ENU.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2005.08\WindowsServer2003-KB899588-x86-ENU.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2005.08\WindowsServer2003-KB899591-x86-ENU.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2005.10\WindowsServer2003-KB899589-x86-ENU.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2005.10\WindowsServer2003-KB900725-x86-ENU.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2005.10\WindowsServer2003-KB901017-x86-ENU.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2005.10\WindowsServer2003-KB902400-x86-ENU.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2005.10\WindowsServer2003-KB904706-DX9-x86-ENU.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2005.10\WindowsServer2003-KB905414-x86-ENU.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2005.11\WindowsServer2003-KB896424-x86-ENU.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2005.12\WindowsServer2003-KB904706-v2-x86-ENU.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2005.12\WindowsServer2003-KB910437-x86-ENU.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2006.01\WindowsServer2003-KB908519-x86-ENU.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2006.01\WindowsServer2003-KB912919-x86-ENU.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2006.02\WindowsServer2003-KB911927-x86-ENU.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2006.04\WindowsServer2003-KB908531-v2-x86-ENU.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2006.04\WindowsServer2003-KB911562-x86-ENU.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2006.04\WindowsServer2003-KB911567-x86-ENU.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2006.06\WindowsServer2003-KB911280-v2-x86-ENU.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2006.06\WindowsServer2003-KB914389-x86-ENU.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2006.06\WindowsServer2003-KB917344-x86-ENU.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2006.06\WindowsServer2003-KB917734-x86-ENU.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2006.06\WindowsServer2003-KB917953-x86-ENU.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2006.06\WindowsServer2003-KB918439-x86-ENU.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2006.07\WindowsServer2003-KB914388-x86-ENU.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2006.07\WindowsServer2003-KB917159-x86-ENU.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2006.08\WindowsServer2003-KB917422-x86-ENU.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2006.08\WindowsServer2003-KB918899-v3-x86-ENU.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2006.08\WindowsServer2003-KB920214-x86-ENU.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2006.08\WindowsServer2003-KB920670-x86-ENU.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2006.08\WindowsServer2003-KB920683-x86-ENU.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2006.08\WindowsServer2003-KB921398-x86-ENU.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2006.08\WindowsServer2003-KB922616-x86-ENU.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2006.09\Windows-KB890830-V1.20.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2006.09\WindowsServer2003-KB920685-x86-ENU.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2006.09\WindowsServer2003-KB921883-v2-x86-ENU.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2006.09\WindowsServer2003-KB922582-x86-ENU.exe
F:\Install\OS\Microsoft\2003\EN\Updates\Critical\2006.09\WindowsServer2003-KB925486-x86-ENU.exe[/more] файлы с одинаковыми ключами автоматически.
Автор: Smitis
Дата сообщения: 09.10.2006 20:01
Venchik

Цитата:
Подскажите пожалуйста как запустить все эти файлы с одинаковыми ключами автоматически.

Посмотри в этой теме. Там хоть для ХР, но всё работает похоже.
Хотя что понимать под "автоматически"? Автоматическое обновление? Это точно в другую тему.

Автор: str1k3r
Дата сообщения: 10.10.2006 09:31
есть 3 службы, ка сделать так чтобы они останавливались по очереди
для задержки пользуюсь sleep из unix utis, команда sleep отрабатывает отлично, но вот с сервисами беда, останавливаеться только тот что стоит первым, а остальные нет.

@echo off
net stop "Seapine License Server"
sleep 2m
net stop "TestTrack Pro Server"
sleep 2m
net stop "SQL Server (MSSQLSERVER)"

что делать?
Причем, если выполнять этот набор команд просто из консоли, то все пашет отлично, а вот из bat файла нет
Автор: khris2005
Дата сообщения: 10.10.2006 09:40
может паузу прописать между слипами ? примерно зараниме посчитать сколько нужно.
Автор: str1k3r
Дата сообщения: 10.10.2006 09:55
khris2005
а как прописать? команда pause же по нажатию, а мне нужно чтобы виде сервиса
Автор: isem
Дата сообщения: 10.10.2006 10:50
str1k3r
а если запускать без слипов? должно же работать по порядку...

или поставить иф предыдущая служба остановлена, то останавливать следующую

или попробуй команду wait
Автор: CoDeR
Дата сообщения: 10.10.2006 11:11
Elroir

Цитата:
Попробуй так:

Код: start /DC:\Tests\FRAPS C:\Tests\FRAPS\fraps.exe
start /DE:\Games\HEROES~1\bin E:\Games\HEROES~1\bin\H5_Game.exe
Автор: Den_Klimov
Дата сообщения: 10.10.2006 12:40
Необходимо прописать в батнике команду на запуск drwebupw.exe в автоматическом режиме (желательно в скрытом) с полным обновлением из каталога указанного в соответствующих настройках drwebupw:
[HKEY_LOCAL_MACHINE\SOFTWARE\IDAVLab\DrWebUpdate\Settings]
"UpdateUrl"="%ProgramFiles%\\DrWeb\\DrWebUpdate\\"
После завершения обновления будут выполнятся другие команды батника. Потому добавил команду /wait.

Команда на запуск такая. Это понятно.
start /d "%ProgramFiles%\DrWeb" /wait drwebupw.exe
Но необходимо добавить правильные ключи для drwebupw. А я этих ключей не знаю.
------
PS.
Хм.
Вроде разобрался (спасибо AnexeR).
start /d "%ProgramFiles%\DrWeb" /wait drwebupw.exe /GO /ST /QU
Поправьте меня если можно сделать лучше.
Автор: Elroir
Дата сообщения: 10.10.2006 13:10
Den_Klimov
Вообще-то это скорее в тему по DrWeb.
Но если очень надо ( ) то вот ключи : [more]
Параметры командной строки для Модуля
автоматического обновления
При запуске Модуля автоматического обновления из
Планировщика или в режиме командной строки вы можете
ввести следующие параметры командной строки:
/URL:<url сервера обновления> – допускаются
только UNC-пути.
/USER:<имя пользователя http-сервера> – имя
пользователя сервера обновлений.
/PASS:<пароль пользователя http-сервера> –
пароль пользователя сервера обновлений.
/UPM:<режим прокси> – режим использования
прокси-сервера, может принимать следующие значения:
• direct – не использовать прокси-сервер
• ieproxy – использовать системные настройки
• userproxy – использовать настройки, задаваемые
пользователем (на вкладке Обновление панели
настроек Dr.Web или ключами /PURL /PUSER /PPASS)
/PURL:<адрес proxy> – адрес прокси-сервера.
/PUSER:<имя пользователя прокси> – имя
пользователя прокси-сервера.
/PPASS:<пароль пользователя прокси> – пароль
пользователя прокси-сервера.
Краткое руководство пользователя
119
/UA – загрузка всех файлов, заявленных в списке обновления,
независимо от используемой системы и установленных
компонентов. Режим предназначен для получения полной
локальной копии серверной области обновления Dr.Web; этот
режим нельзя использовать для обновления антивируса,
установленного на компьютере.
/ST – запускать модуль обновления в невидимом окне
(stealth mode).
/LNG:<имя_файла> – имя файла языковых ресурсов; если
не указано, использовать английский язык.
/GO – пакетный режим работы, без диалоговых остановок.
/QU – принудительно закрывать модуль обновления после
окончания сеанса обновления независимо от того, успешно
оно прошло или нет. Успешность обновления можно
проверить по коду возврата программы drwebupw.exe
(например, из bat-файла по значению переменной
errorlevel: 0 – успешно, другие значения – неуспешно).
/DIR:<каталог> – переназначение каталога, в который
устанавливаются файлы обновления; по умолчанию это
каталог, из которого модуль обновления был запущен.
/URM:<режим> – режим рестарта после обновления, может
принимать следующие значения:
• prompt – по окончании сеанса обновления в случае
необходимости перезагрузки выдавать запрос
• noprompt – в случае необходимости,
перезагружаться без выдачи запроса
• force – перезагружать принудительно всегда
(независимо от того, требуется это для обновления
или нет)
• disable – запретить перезагрузку
/REG – запуск Модуля обновления в режиме регистрации и
получения регистрационного ключа.
/UPD – обычное обновление; применяется в паре
с ключом /REG: в режиме регистрации дополнительно
запустить и собственно сеанс обновления.
/UVB – обновлять только вирусные базы (отменяет действие
ключа /UA , если он задан).
/RP<имя_файла> или /RP+<имя_файла> – записать
отчет о работе программы в файл, имя которого указано в
ключе. При отсутствии имени записать в файл по умолчанию.
При наличии символа + файл дописывается, при отсутствии –
создается заново.
/INI:<путь> – использовать альтернативный
конфигурационный файл с указанным именем или путем.
/NI – не использовать параметры, записанные
в конфигурационном файле программы drweb32.ini.
/NR – не создавать файл отчета.
/SO – включить звуковое сопровождение (только при
возникновении ошибки).
/DBG – вести подробный отчет.
Параметр /SO допускает задание в конце символа "-". В такой
"отрицательной" форме параметр означает отмену
соответствующего режима. Такая возможность может быть
полезна в случае, если этот режим включен по выполненным
ранее установкам в конфигурационном файле.
Для параметров /INI и /RP "отрицательная" форма
записывается в виде /NI и /NR соответственно.
Если в командной строке встречаются несколько
взаимоисключающих параметров, то действует последний из
них.
[/more]

Автор: Den_Klimov
Дата сообщения: 10.10.2006 13:12
Elroir
Спасибо большое. А где ты взял этот полный список команд?
-----------------
Ещё такой глупый вопрос. Помогите кто-нибудь.

Какой командой можно перезагрузить компьютер?
Какой командой можно выключить компьютер?
Какой командой можно перевести в спящий режим?
Какой командой можно перевести в ждущий режим?
Или хотя бы вывести соответствующий вопрос о выключении/перзагрузке?
Автор: Elroir
Дата сообщения: 10.10.2006 13:12
Den_Klimov
Пока писал сообщение, ты уже разобрался

Добавлено:
Den_Klimov
Список команд взят из документации по DrWeb - здесь

Добавлено:
Есть команда shutdown:
Shutdown: shutdown -s
Restart: shutdown -r
Log off: shutdown -l
Suspend/Hibernate: rundll32.exe PowrProf.dll,SetSuspendState
Результат последней команды зависит от того, разрешен режим Hibernation или нет.
Автор: Den_Klimov
Дата сообщения: 10.10.2006 14:35
Elroir
Спасибо дружище!

Добавлено:
В конце концов с подсказки AnexeR (спасибо ему за помощь) пришёл к такой строке:
start /d "%ProgramFiles%\DrWeb" /wait drwebupw.exe /URL:.\DrWebUpdate /UPM:direct /GO /ST /QU

Прим. Каталог DrWebUpdate находится у меня в каталоге DrWeb.
Автор: ViSiToR
Дата сообщения: 10.10.2006 17:46
str1k3r


Цитата:
есть 3 службы, ка сделать так чтобы они останавливались по очереди
для задержки пользуюсь sleep из unix utis, команда sleep отрабатывает отлично, но вот с сервисами беда, останавливаеться только тот что стоит первым, а остальные нет.


Попробуй для задержки использовать такой способ:


Код: @echo off
net stop "Seapine License Server"
ping -n 120 localhost > nul
net stop "TestTrack Pro Server"
ping -n 120 localhost > nul
net stop "SQL Server (MSSQLSERVER)"
Автор: komal
Дата сообщения: 11.10.2006 07:54
Подскажите плиз как переименовать диск и з командной строки. Это нужно для того чтоб подключаемым сетевым дискам давать локоничные, короткие понятные имена.
Что бы пользователи не пугались.
А то по умолчанию они именуются: sharepapka на \\servername\directory\papka (O
Это не удобно, пользователи путаются.
Правой кнокой нажимаешь там можно переименовать, но мне нужно в скрипте автоматом.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Вернуть библиотеку АТМ (поддержка шрифтов Type 1)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.