Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)

Модерирует : gyra, Maz

Maz (19-09-2020 13:36): Командная строка, батники, сценарии (bat, cmd) Часть 6  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199

   

cchameleone



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Командная строка, батники\сценарии (bat, cmd)
(часть 1) (часть 2) (часть 3) (часть 4)
Вопросы, задачи и их решения по работе с командной строкой, файлами, а также сопутствующие ссылки.

Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!! Чтобы не копировались концевые пробелы из форума, жмите на ссылку "Редактировать" в посте, и уже из редактора копируйте батник без пробелов.
 
Примечание: Большие куски кода заключайте в тэг [ more ].  

Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Microsoft Windows » Сценарии Windows

Полезные ссылки:
· Из Windows XP Professional Product Documentation:
» Описание Cmd.exe » Command shell overview
» Using batch files » Using batch parameters » Using filters » Using command redirection operators
 
· Уроки bat-аники (для начинающих): первый и второй
· Курс из 19 лекций "Командная строка и сценарии Windows"
· Попов А. Командная строка и сценарии Windows (PDF). Курс лекций для начинающих
· Бокалий В. Командная строка (pdf-брошюрка в 20 страниц)
· Александров А., Дибров А. Урок bat-аники (pdf)
· Уильям Р. Станек - Командная строка Windows. Справочник администратора
 
· Скрываем консольные окна, Выполнение BAT-скриптов без вызова окна консоли
· cmdow — изменение параметров и видимости дос-окна, Статья в КОМПЬЮТЕРРАONLINE
· Набор GNU утилит для win32
· HS_Packet.7z - Пакет утилит для организации интерфейса в bat-файлах
· Использование ansi.sys
· blat — отправка почты из консоли
· Команды RunDll32
· Quick Batch File Compiler - Позволяет превратить ваш батник в независимое приложение
· Easy Batch Builder+Rus+Crack - Редактор BAT файлов.Через графический интерфейс программы вы сможете быстро конструировать пакетные файлы практически любой сложности. (В комплекте есть Лоадер созданный с помощью Sign Of Misery некоторые антивирусы обзывают его вирусом. Вам решать: ставить или не ставить) (ЗЕРКАЛО)
· Простой способ получать текущую дату всегда в одном формате (не зависит от языков и настроек) ещё и ещё
· Переход из 32-битной версии cmd.exe в 64-битную (1) (2)(3)

Всего записей: 2279 | Зарегистр. 16-10-2015 | Отправлено: 09:22 29-04-2016 | Исправлено: Maz, 08:47 26-03-2020
vasulpr

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RetroRocket
только вот проблемка названия рандомно и использовать маску нет возможност
надо явно задавать названия папок и файлов
извиняйте я немного криво описание сделал))

Всего записей: 126 | Зарегистр. 27-03-2011 | Отправлено: 11:09 01-03-2018 | Исправлено: vasulpr, 11:11 01-03-2018
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vasulpr
Список файлов, которые надо оставить - в самом файле, начинаются с :: (с самого начала строки).
Помещаете в целевой каталог и запускаете.
ОСТОРОЖНО! Удаляет каталоги вместе с подкаталогами. Все, чего нет в самом батнике: и файлы, и папки (кроме себя самого).
Цитата:
@echo off
setlocal enableextensions disabledelayedexpansion
 
::Name1
::Name3
::Name7
 
for %%a in ("%~dp0*") do call :TestItem "del /f" "%%~fa"
for /d %%a in ("%~dp0*") do call :TestItem "rmdir /s" "%%~fa"
goto :eof
 
:TestItem
findstr /b /e /l /c:"::%~nx2" "%~f0">nul
if not errorlevel 1 goto :eof
if /i "%~f0"==%2 goto :eof
%~1 /q %2
goto :eof
Чутка поправил FINDSTR... так лучше

Всего записей: 12375 | Зарегистр. 11-03-2002 | Отправлено: 12:32 01-03-2018 | Исправлено: Pasha_ZZZ, 12:58 01-03-2018
se4a



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хочу создать CMD-файл(или BAT) для запуска ламером, чтобы "чистить" две папки.
 

Код:
 
@echo off
del /s /q Cache\*.*
rd /s /q Cache\*.*
del /s /q MediaCache\*.*
rd /s /q MediaCache\*.*
exit
 

 
Этот "вариант" оставляет подпапки!
Пожалуйста, подскажите, как исправить! И как можно автоматизировать его запуск?
Например, при каждом входе в систему?

Всего записей: 240 | Зарегистр. 10-01-2012 | Отправлено: 18:06 04-03-2018
wadimuss

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
достаточно

Код:
rd /q /s <папка>


Всего записей: 1029 | Зарегистр. 24-11-2008 | Отправлено: 18:18 04-03-2018 | Исправлено: wadimuss, 18:23 04-03-2018
Inoz2000



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ну так уже ответили
Start
Цитата:
se4a
Может быть так:

Код:
rd /s /q Cache
rd /s /q MediaCache
md Cache
md MediaCache


----------
Мы все умрём. (-:

Всего записей: 4891 | Зарегистр. 23-04-2009 | Отправлено: 18:27 04-03-2018
RetroRocket



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
se4a
Если не нужно удалять сами папки MediaCache и Cache, то сделайте по примеру из этого поста.  
Только лучше указать полные пути к каталогам (взять в кавычки, если с пробелами).
А для автозапуска поместите командник в каталог автозагрузки нужного пользователя.

Всего записей: 2682 | Зарегистр. 02-01-2018 | Отправлено: 18:47 04-03-2018 | Исправлено: RetroRocket, 18:48 04-03-2018
BorlandIMHO

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Этот "вариант" оставляет подпапки!

"rd /s /q" оставляет подпапки в одном единственном случае: если их удалить невозможно (например - используются другим процессом {в т.ч. защита системных папок} или недостаточно прав у учётной записи, от имени которой производится запуск скрипта).
Если папки "Cache " и "MediaCache" также подлежат удалению - достаточно ровно двух команд:
Код:
rd /s /q Cache
rd /s /q MediaCache

Если папки нужно сохранить, а почистить только их соджержимое воспользуйтесь вариантом от Inoz2000 или, как вариант, таким:
Код:
pushd "Cache" && (rd /s /q . & popd) ||exit
pushd "MediaCache" && (rd /s /q . & popd) ||exit

Настоятельно рекомендую в любом случае заменить названия очищаемых папок на название с полным путём (типа "c:\путь до\очищаемой папки\Cache"). Воизбежание непоняток...

Цитата:
как можно автоматизировать его запуск?
Например, при каждом входе в систему?

schtasks /?
В частности так, к примеру:
Код:
schtasks /CREATE /SC ONLOGON /TN "Clear cache on user logon" /TR "cmd /c c:\полный путь\до скрипта\script.cmd"


----------
http://www.imho.ws

Всего записей: 2388 | Зарегистр. 12-10-2006 | Отправлено: 19:10 04-03-2018 | Исправлено: BorlandIMHO, 19:12 04-03-2018
se4a



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BorlandIMHO, спасибо!
На своём ноутбуке опробовал :
 

Код:
 
@echo off
pushd "C:\Portable Program Files\GOOGLE Chrome(Portable)\Data\profile\Cache" && (rd /s /q . & popd) ||exit
pushd "C:\Portable Program Files\GOOGLE Chrome(Portable)\Data\profile\MediaCache" && (rd /s /q . & popd) ||exit
 

 
Рабтает!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
Хотел добавить :
 

Код:
 
@echo off
pushd "C:\Portable Program Files\GOOGLE Chrome(Portable)\Data\profile\Cache" && (rd /s /q . & popd) ||exit
pushd "C:\Portable Program Files\GOOGLE Chrome(Portable)\Data\profile\MediaCache" && (rd /s /q . & popd) ||exit
ipconfig -flushdns
 

 
Но не уверен, что DNS-кэш тоже чистится, вывода результатов нет, придётся ещё один CMD-файл.
 
что касается "прописки" в автозагрузке, то у меня этот код не сработал :
 

Код:
 
schtasks /CREATE /SC ONLOGON /TN "Clear cache on user logon" /TR "cmd /c c:\полный путь\до скрипта\script.cmd"  
 

 
Получается только так :
 

Код:
 
schtasks /CREATE /SC ONLOGON /TN "Чистка Кэша Chrome При Входе" /TR "cmd /c 'C:\Portable Program Files\GOOGLE Chrome(Portable)\Data\profile\ClearCache.cmd'"  
 

 
Т.е. с апострофами в написании пути : 'C:\полный путь\до скрипта\script.cmd' (Это я пишу для таких, как я!)
 
Ещё раз, большое спасибо! И форуму тоже!
 

Всего записей: 240 | Зарегистр. 10-01-2012 | Отправлено: 17:39 05-03-2018 | Исправлено: se4a, 18:00 05-03-2018
se4a



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Извините, пожалуйста, опять я!
 
Поправьте, пожалуйста :
 

Код:
 
@echo off
start "C:\Portable Program Files\GOOGLE Chrome(Portable)\ClearCache.cmd"
start "C:\Portable Program Files\GOOGLE Chrome(Portable)\ClearDNSCache.cmd"
start "chrome" "C:\Portable Program Files\GOOGLE Chrome(Portable)\GoogleChromePortable.exe" /admin
exit
 

 
CMD-файлы не срабатывают, Хром - запускается!

Всего записей: 240 | Зарегистр. 10-01-2012 | Отправлено: 17:14 06-03-2018
arsalan

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день. Нужна помощь в решении следующей проблемы. При запуске bat-файлов, в которых пути к каталогам заданы через %~dp0 система выдает ошибку "Не удается найти "~dp0...". Проверьте, правильно ли указано имя". Если в bat-файле записать полный путь к каталогу, где находится файл, то все запускается нормально. Например, заменяю в bat-файле строку set cf=%~dp0..\.. на set cf=F:\Creo_4.0_M040\Creo 4.0\M040 и батник начинает работать. Подскажите, пожалуйста, в чем может быть проблема.

Всего записей: 47 | Зарегистр. 11-03-2010 | Отправлено: 17:48 06-03-2018 | Исправлено: arsalan, 17:49 06-03-2018
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
arsalan
Почему-то отключена расширенная обработка. В начале батника вставить
Цитата:
setlocal enableextensions

Всего записей: 12375 | Зарегистр. 11-03-2002 | Отправлено: 18:09 06-03-2018
Smitis



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
se4a

Код:
@echo off
start "" "C:\Portable Program Files\GOOGLE Chrome(Portable)\ClearCache.cmd"
start "" "C:\Portable Program Files\GOOGLE Chrome(Portable)\ClearDNSCache.cmd"
start "chrome" "C:\Portable Program Files\GOOGLE Chrome(Portable)\GoogleChromePortable.exe" /admin
exit

А ещё бы надо в первых двух start добавить /wait
или вообще через call

Код:
@echo off
call "C:\Portable Program Files\GOOGLE Chrome(Portable)\ClearCache.cmd"
call "C:\Portable Program Files\GOOGLE Chrome(Portable)\ClearDNSCache.cmd"
start "chrome" "C:\Portable Program Files\GOOGLE Chrome(Portable)\GoogleChromePortable.exe" /admin
exit

но я не знаю, что там в этих батниках


----------
Разум когда-нибудь победит

Всего записей: 3179 | Зарегистр. 09-02-2003 | Отправлено: 18:16 06-03-2018 | Исправлено: Smitis, 18:17 06-03-2018
Start



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
se4a
Мждет быть будет лучше использовать расширение CMD-файлов не *.cmd а *.bat?
... \ClearCache.bat"
... \ClearDNSCache.bat"

Всего записей: 634 | Зарегистр. 28-01-2006 | Отправлено: 19:05 06-03-2018 | Исправлено: Start, 19:14 06-03-2018
arsalan

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Почему-то отключена расширенная обработка. В начале батника вставить

Большое вам спасибо за совет. Завтра попробую. Такая проблема только на рабочем компьютере. Еще нашел как включить расширенную обработку в реестре.

Всего записей: 47 | Зарегистр. 11-03-2010 | Отправлено: 19:24 06-03-2018
Smitis



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Start

Цитата:
Мждет быть будет лучше использовать расширение CMD-файлов не *.cmd а *.bat?

Чем лучше?

----------
Разум когда-нибудь победит

Всего записей: 3179 | Зарегистр. 09-02-2003 | Отправлено: 23:33 06-03-2018
se4a



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
но я не знаю, что там в этих батниках

 
В CMD-файлах :
 
"C:\Portable Program Files\GOOGLE Chrome(Portable)\ClearCache.cmd" :
 

Код:
 
@echo off  
pushd "C:\Portable Program Files\GOOGLE Chrome(Portable)\Data\profile\Cache" && (rd /s /q . & popd) ||exit  
pushd "C:\Portable Program Files\GOOGLE Chrome(Portable)\Data\profile\MediaCache" && (rd /s /q . & popd) ||exit  
 

 
"C:\Portable Program Files\GOOGLE Chrome(Portable)\ClearDNSCache.cmd" :
 

Код:
 
@echo on
ipconfig -flushdns
pause
 

 
"on" и "pause" во втором - только для контроля, потом уберу!
 

Цитата:
Может быть будет лучше использовать расширение CMD-файлов не *.cmd а *.bat?

 
Start, не может быть! Вся схема сказала мне : На ... ты мне сдался! И не сработал ни один файл!
 
Вообще-то, в идеале видится запуск ламером одного ярлыка, после чего "облегчается" : DNS-кэш, "кэш" Chrome(или обоих Хром-ов, и портативного и "штатного", после чего запускается браузер! И ламер чувствует себя богом Сети! У себя-то я весь "мусор" заметаю сам!

Всего записей: 240 | Зарегистр. 10-01-2012 | Отправлено: 15:27 07-03-2018
Smitis



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
se4a
А зачем деление на несколько батников? И запускать их через start?
Команда start запустит батник в отдельном окне отдельным процессом. Без /wait сразу перейдёт к следующей команде, не дожидаясь завершения. В результате к моменту запуска GoogleChromePortable.exe может оказаться, что батники ещё работают и что-то удаляют.


----------
Разум когда-нибудь победит

Всего записей: 3179 | Зарегистр. 09-02-2003 | Отправлено: 16:38 07-03-2018
se4a



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
А зачем деление на несколько батников? И запускать их через start?

 
Smitis, я вижу Вы продвинутый(я без иронии, и насмешки!) в этом деле! Ну вот и подскажите начинающему криворукому недопрограммисту(опять я никого не хочу оскорбить: я с ДЦП должен каждый раз брать материн "ноут", чтобы "улучшить" Chrome-инг по Сети!)!  
 
Хотя и два cmd-файла :
 
C:\Portable Program Files\GOOGLE Chrome(Portable)\ClearCache.cmd
C:\Portable Program Files\GOOGLE Chrome(Portable)\ClearDNSCache.cmd
 
Тоже оставлю для "Планировщика заданий" - для выполнения при "выходе-входе" в систему. Полезного много не бывает!

Всего записей: 240 | Зарегистр. 10-01-2012 | Отправлено: 16:16 08-03-2018
Start



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
se4a
Если заинтересует:
Можно создать ярлык для запуска нескольких команд:
Создаёте ярлык.
Появится окно "Создание ярлыка", в окошке "Укажите размещение объекта:" - скопируйте следующий код:
Введите имя ярлыка.
 
В свойствах ярлыка (щелчок правой кнопкой мыши по ярлыку):
В окошко "Объект" скопировать код:

Код:
%comspec% /C pushd "C:\Portable Program Files\GOOGLE Chrome(Portable)\Data\profile\Cache" && (rd /s /q . & popd) && pushd "C:\Portable Program Files\GOOGLE Chrome(Portable)\Data\profile\MediaCache" && (rd /s /q . & popd) && ipconfig -flushdns

(Не знаю какая у Вас ОС, в Windows XP количество символов ограничено 259, после ввода этого кода остаётся место для 17.)
В окошко "Рабочая папка": %windir%
Быстрый вызов: Нет
Окно: - выбрать: Свёрнутое в значок, тогда окно консоли не будет видно.
Сменить значок... - если нужно.
 
Для запуска вместе с системой этот ярлык нужно скопировать в меню "Пуск" \Все программы\Автозагрузка
(C:\Documents and Settings\Имя пользователя\Главное меню\Программы\Автозагрузка)
 
Проверил: ярлык папки Cache и MediaCache чистит.
Сработает ли ipconfig -flushdns -не проверял, так-как нет Chromа
 
Готовый ярлык:
Chrome.lnk
 

Всего записей: 634 | Зарегистр. 28-01-2006 | Отправлено: 17:40 08-03-2018 | Исправлено: Start, 17:59 08-03-2018
Smitis



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
se4a
Просто не понятен смысл некоторых действий. Например, зачем сбрасывать кэш dns?
Если бы нужно было очищать кэш браузера перед каждым запуском, я бы просто создал один батник со всеми действиями

Код:
@echo off
setlocal enableextensions
pushd "C:\Portable Program Files\GOOGLE Chrome(Portable)\Data\profile\Cache" && (rd /s /q . & popd) ||exit
pushd "C:\Portable Program Files\GOOGLE Chrome(Portable)\Data\profile\MediaCache" && (rd /s /q . & popd) ||exit
ipconfig -flushdns
::pause
start "chrome" "C:\Portable Program Files\GOOGLEChrome(Portable)\GoogleChromePortable.exe" /admin
exit


----------
Разум когда-нибудь победит

Всего записей: 3179 | Зарегистр. 09-02-2003 | Отправлено: 23:11 08-03-2018
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)
Maz (19-09-2020 13:36): Командная строка, батники, сценарии (bat, cmd) Часть 6


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru