Копирование папок с условием
Хочу скопировать все "новые папки" с диска со всем содержимым, но при этом возникла проблема: если внутри "новой папки" есть ещё одна "новая папка" батник и её отдельно тоже скопирует, что не нужно, т.к. она уже будет скопирована как подкаталог. Помогите решить проблему. Код который я составил и нужно доработать:
For /f "delims=" %%H In ('dir /A:D /S /B "X:\*новая папка*"') Do (
xcopy /E /C /I /Q /H /Y /N /J "%%H" %cd%
)
|
Код:
@echo off
echo новая папка.*\\>.tmp
for /f "delims=" %%H in ('"dir /ad/b/s "X:\*новая папка*" 2>nul| findstr /irvg:.tmp"') do (
xcopy /c/e/h/i/j/n/q/y "%%H" "%cd%\%%~nxH">nul
)
del .tmp
exit /b
Сохранить в кодировке DOS-866.
|
Georgio, Большое спасибо. Помогло
Можно объяснить как он проигнорировал повторяющиеся строки который появляются при поиске "dir"? И почему нужна именно такая запись в файле .tmp "новая папка.*\\"?
И ещё спасибо что подправили "%cd%\%%~nxH" эту запись, не знал что так можно. А в "nxH" x - является обязательным? или можно "nH" это же папка?
|
Цитата:
Цитата sjaybez
как он проигнорировал повторяющиеся строки который появляются при поиске "dir"? »
|
Фильтрацией посредством «findstr.exe».
Цитата:
Цитата sjaybez
И почему нужна именно такая запись в файле .tmp "новая папка.*\\"? »
|
Потому что таково регулярное выражение на исключение строк, содержащих папки, вложенные в «*новая папка*». Ключевым здесь является экранированный символ разделителя пути «\».
Цитата:
Цитата sjaybez
А в "nxH" x - является обязательным? или можно "nH" это же папка? »
|
У папки тоже может быть расширение. Как пример — «WINDOWS.OLD».
|
Iska, Спасибо за разъяснение. Я понял - /irvg -это перечень параметров findstr, которые позволили профильтровать пути, вместе с сочетанием "новая папка.*\\"
|
Именно.
С регулярным выражением.
|
Время: 02:27.
© OSzone.net 2001-