
Мне нужно выполнить поиск файла(ов) в указанной папке и ее подкаталогах, а затем скопировать их в указанную папку где-то еще. Можно ли использовать dir
и copy
с конвейером?
dir /s foo???.txt | copy g:\someplace
Вышеуказанное не работает. Левая часть трубы находит то, что мне нужно, но я не могу заставить ее скопировать найденные файлы. Я использую командную строку Windows 7.
решение1
Вы можете просто использовать xcopy
:
xcopy /s foo???.txt g:\someplace
Здесь будет храниться структура каталогов.
Если вам не нужна структура каталогов, вы можете сделать следующее:
for /r %i in (foo???.txt) do xcopy /Y "%i" g:\someplace
Если вы используете это в пакетном файле, то вам следует продублировать %
это следующим образом:
for /r %%i in (foo???.txt) do xcopy /Y "%%i" g:\someplace
решение2
с помощью Powershell вы можете запустить это:
cmd.exe /c dir *.txt /s /b | copy -Destination d:\md
часть cmd.exe часть Powershell немного понятнее, но есть перекрытия