我使用以下命令将文件从网络共享复制到基于CSV文件的本地硬盘驱动器.
import-csv C:\TEST\test.csv | foreach {copy-item -path $_.npath -destination 'C:\TEST\'}
Run Code Online (Sandbox Code Playgroud)
下一步是使用不同的CSV文件根据当前文件名重命名这些文件.
是否有一个命令允许我复制和项目并重命名它?
Fro*_* F. 28
如果您的CSV包含两列,oldfilepath和newfilename,则可以使用以下内容.
Import-Csv C:\test.csv | % { Copy-Item -Path $_.oldfilepath -Destination "C:\TEST\$($_.newfilename)" }
Run Code Online (Sandbox Code Playgroud)
注意它$_.newfilename是如何封装在一个$().那是因为$_.newfilename是一个表达式(因为我们从变量中得到一个属性),而不是一个变量.$()告诉PowerShell在字符串中使用它之前解决表达式.如果我们不使用它,它会将整个csv-object用作该行($_)作为字符串并返回错误.
Taz*_*Taz 21
如果原始CSV中还包含新名称,则可以使用它在复制路径末尾指定文件名.复制项CMDlet允许您指定目标文件名
Copy-Item C:\TEST\file1.jpg C:\TEST\file2.jpg
Run Code Online (Sandbox Code Playgroud)
将copy1.jpg复制并重命名为file2.jpg
要将变量连接到路径字符串的末尾,您可以使用双引号,如下所示:
Copy-Item C:\Path\To\File\file.ext "C:\Path\To\New\File\$newfilename"
Run Code Online (Sandbox Code Playgroud)
请注意,-path和-destination并不是必需的,因为它们是由位置隐含的.
| 归档时间: |
|
| 查看次数: |
73478 次 |
| 最近记录: |