![]() |
Поиск и замена строки в определенной папке и ее подпапках.
]Имеется некая папка, в ней, возможно, находится файл "SH.INI" в котором обязательно содержится строка SIZE_LOG_FILE_KB=512 и куча других строк. Так вот, нужно найти все такие файлы "SH.INI" в конкретной папке и ее подкаталогах и заменить в них данную строку на SIZE_LOG_FILE_KB=5120.
Накидал собственными силами батник, находит и заменяет строку только в одном файле, который находится в папке с батником, но хоть убей, не понимаю как то же самое сделать для подпапок с одного батника. Подобных тем полно, но все одни связаны с заменой строки в конкретном файле в конкретном каталоге, я их пересмотрел все. Помогите пожалуйста, уже который день мучаюсь) Код:
@echo off |
Цитата:
PowerShell будет проще и удобнее. Он Вас устроит? |
Zhenyok21, правильно - задачу нужно разделять на простые части и решать их по-отдельности.
заменяете в своём батнике вторую строку на Код:
set file=%1 Код:
set_new_log_size.bat sh.ini Код:
for /R c:\temp %i in (sh.ini) do set_new_log_size.bat %i |
Zhenyok21,
Вот так
Код:
@Echo Off Или, ИМХО, быстрее работает так
Код:
@Echo Off Busla, для for /R ..... если файл называется, например, не "sh.ini", а "s h.ini", у меня этот номер не прошел:
если Код:
@Echo Off Z:\Box_In\S Z:\Box_In\H.INI Z:\Box_In\Mail\S Z:\Box_In\Mail\H.INI Z:\Box_In\Mail jsdgjh\S Z:\Box_In\Mail jsdgjh\H.INI Z:\Box_In\Папка jsdgjh\S Z:\Box_In\Папка jsdgjh\H.INI если Код:
FOR /R "%BoxIn%" %%f IN ("%File%") DO Echo %%f Z:\Box_In\"S H.INI" Z:\Box_In\Mail\"S H.INI" Z:\Box_In\Mail jsdgjh\"S H.INI" Z:\Box_In\Папка jsdgjh\"S H.INI" |
Цитата:
|
Вложений: 1
Цитата:
|
Цитата:
Цитата:
PowerShell
Код:
$sSourceFolder = 'C:\Мои проекты\0100' |
Время: 23:26. |
Время: 23:26.
© OSzone.net 2001-