Тьфу, слепое занятие полной заменой всей структуры дерева каталогов заставило бы меня нервничать. Но если вы думаете, что это безопасно ...
Это потенциально сложно сделать то, что вы хотите, используя чистый пакет, в зависимости от содержимого вашего файла. Но это легко сделать с помощью гибридной утилиты JScript/batch, которую я написал под названием REPL.BAT. Утилита выполняет поиск и замену регулярных выражений в stdin и записывает результат в stdout. Это чистый скрипт, который запускается на любой современной машине с Windows начиная с XP, поэтому он не требует установки какого-либо стороннего .exe
файла. Утилита REPL.BAT и документация доступны здесь. ,
Предполагая, что у вас есть REPL.BAT в вашем текущем каталоге, или, что еще лучше, где-то в вашей переменной PATH, следующий простой вкладыш должен выполнить трюк непосредственно из командной строки, пакет не требуется.
for /r %F in (*.sql) do @(type "%F"|repl "C:\" "E:\" >"%F.new"&move /y "%F.new" "%F" L >nul)
Вы можете сделать поиск нечувствительным к регистру, добавив переключатель I
for /r %F in (*.sql) do @(type "%F"|repl "C:\" "E:\" I >"%F.new"&move /y "%F.new" "%F" L >nul)
Или, если вы предпочитаете пакетный скрипт (с переключателем I
)
@echo off
for /r %%F in (*.sql) do (
type "%%F"|repl "C:\" "E:\" LI >"%%F.new"
move /y "%%F.new" "%%F" >nul
)
Я использовал L
буквальный переключатель повсюду; другой вариант - вместо \
.
repl "C:\\" "E:\\" I