使用Powershell从文件夹复制特定文件

时间:2019-12-18 09:23:34

标签: windows powershell

我需要复制许多具有特定名称的特定pdf文件。 所有文件都在同一个文件夹中,我在csv中拥有所有文件名。 我做了一个像这样的懒惰“脚本”(发现并非本文中的所有文件):

Copy-Item -Path 391248* -Destination <destination>
Copy-Item -Path 241044* -Destination <destination>
Copy-Item -Path 532350* -Destination <destination>

有人对此有更清洁的解决方案吗?

3 个答案:

答案 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 + $_