我一直在编写 Powershell 中的脚本,以从 CSV 文件中获取路径,并将相应路径中的这些文件移动到其他地方的新目的地。通常使用不同的文件名。
我正在使用 5.0 版
例如:
Source Destination : C:\1\2\3\File.pdf, D:\3\7\8\9\FILE1.pdf
现在我使用了以下脚本,它最初能够移动一些文件:
Import-CSV "R:\MoveFiles.csv" -Delimiter "," -ErrorAction Stop | ForEach-Object{Move-Item -path $_.Source -Destination $_.Destination}
尽管执行到一半左右开始返回此错误:
移动项目:找不到路径的一部分。在 line:1 char:238 + ... Each-Object{Move-Item -Literalpath $ .Source -Destination $ .Destina ...
+ ~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : WriteError: (Q:\RECORDS\ PRIV...-4-20_N1969.pdf:FileInfo) [Move-Item], DirectoryNotFoundException
+ FullyQualifiedErrorId : MoveFileInfoItemIOError,Microsoft.PowerShell.Commands.MoveItemCommand
据我所知,没有特殊字符会阻止找到路径。如果我将 Move-Item 替换为 Copy-Item 它会返回相同的错误。我还检查了路径以查看它们是否正确。
我对此束手无策。不知道还有什么可以尝试的。我毕竟是一个完全的新手。
谢谢
注意:我为这个问题制定了解决方案。Move-Item cmdlet似乎不喜欢创建目录。
相反,我首先使用New-Item -directories创建目录,从文本文档中获取内容,其中每一行都代表一个路径(没有标题)。
首先创建空目录后,原始脚本按预期工作。
对于这里感兴趣的任何人是目录脚本:
#CREATE DIRECTORIES FROM CSV
cd
$name = Get-Content ".\Create_New_Directories\Move_Directories_Test.txt"
Foreach ($_ in $name)
{
New-Item -Force -verbose -path $_ -Type Directory
}
Out-File ".\Create_New_Directories\Newoutput.txt"
感谢大家的帮助。