我正在尝试在目录和子目录中搜索文本文件中列出的文件,并使用批处理文件将它们复制到新位置。如果将所需文件放在主目录中,则可以正常工作,但无法搜索子目录。
@echo off
for /f "tokens=1,* delims=," %%j in (filelist.txt) do (
for /r "E:\Source" %%a in ("%%j") do (
copy "%%a" "C:\Destination\%%k"
)
)
如果我只想搜索“源”文件夹,但不能搜索“源”文件夹内的任何文件夹,则此方法有效。希望有人可以告诉我我所缺少的。
我对此并不陌生,所以请告诉我是否需要更多信息。
答案 0 :(得分:0)
这应该让您入门,如果您选择使用Powershell。
$files = 'C:\list.txt'
$location = 'C:\files\'
$destination = 'C:\destination\'
# for each filename in "list.txt", look for the file in C:\destination\, recursively
gc $files | % {
write-host "looking for $_"
$result = gci -Recurse $location $_
if($result) {
write-host -ForegroundColor Green "found $_ in $location!"
write-host "copying $_ to $destination..."
copy-item $result.FullName $destination\$_
}
}
输出将如下所示:
-Recurse
标志可帮助您遍历子目录的问题。
您可能需要优化此方法,以消除每个文件名运行一次搜索的麻烦,尽管这样做规模很小,但是效果很好。