我需要复制许多具有特定名称的特定pdf文件。 所有文件都在同一个文件夹中,我在csv中拥有所有文件名。 我做了一个像这样的懒惰“脚本”(发现并非本文中的所有文件):
Copy-Item -Path 391248* -Destination <destination>
Copy-Item -Path 241044* -Destination <destination>
Copy-Item -Path 532350* -Destination <destination>
有人对此有更清洁的解决方案吗?
答案 0 :(得分:0)
$fileList = 'C:\filelist.csv'
Get-Content -Path $fileList | ForEach-Object {
Copy-Item -Path $_ -Destination 'destination'
}
答案 1 :(得分:0)
另一种衬垫解决方案是:
cat "The path of csv file.csv" | % {copy -path $_ -destination "The destination"}
答案 2 :(得分:0)
我的CSV如下:
Filename
1
2
3
4
5
6
7
8
9
此csv不包含文件扩展名,下面的代码添加文件扩展名'.pdf'。您可以对其进行修改以包含所需的任何内容。
$csv_location = 'path to your csv'
# 'FileName' is the name of the column inside the csv
$file_names = ( Import-Csv $csv_location ).FileName
$destination = 'path of files to be copied into'
$origin = 'path of files to be copied from'
$file_names | ForEach-Object {
# This line adds the extension '.pdf' to the filename and file path obtained from $file_names and $origin, respectively.
$full_path = $origin + $_ + '.pdf'
# Copy from origin to ( destination + file name + file extension )
Copy-Item -Path ( $full_path ) -Destination $destination -Force
}
如果您的csv包含文件扩展名,
$full_path = $origin + $_