我发现了一些与以下相关的帖子,但还没有找到解决办法!
我有一个filelist.txt文件,其中包含文件列表:
C:\test1\sample1.txt
C:\test2\sample2.txt
C:\test3\folder1\sample3.txt
C:\test3\folder1\sample4.txt
C:\test3\folder1\folder2\sample5.txt
我想使用带有copy,xcopy或robocopy的批处理文件来读取确切的文件,并将它们与文件夹一起复制到指定的目录中。所得:
C:\copy_folder\test1\sample1.txt
C:\copy_folder\test2\sample2.txt
C:\copy_folder\test3\folder1\sample3.txt
C:\copy_folder\test3\folder1\sample4.txt
C:\copy_folder\test3\folder1\folder2\sample5.txt
在源目录中,可能存在其他文件,但这些文件不应该被删除,只能在filelist.txt文件中找到。因此创建了副本文件结构,但没有未指定的文件。
提前致谢!
答案 0 :(得分:0)
如果您想使用纯PowerShell
方法,可以使用以下代码:
$destination = "C:\copy_folder"
$textFileWithPaths = "C:\filelist.txt"
Get-Content $textFileWithPaths | % {
# Create the destination folder path
$NewFolder = Split-Path (Join-Path $destination $_) -Parent | Split-Path -NoQualifier`
# Check if the path exsists - create if it doesn't exsist
If(!(Test-Path $NewFolder)){
New-Item -ItemType Directory -Path $NewFolder -Force
}
# Copy the file to new location
Copy-Item $_ $NewFolder -Force
}
此代码将从给定文本中获取每个文件路径,然后创建文件的文件夹树(除驱动器号之外的所有文件)。然后将文件的副本复制到新位置。