【发布时间】:2016-02-17 05:01:00
【问题描述】:
运行以下使用 Copy-Item 命令的简单脚本时,我收到错误消息“路径中的非法字符”:
$Files = Get-Content output.txt
ForEach($File in $Files){
echo $File
$Directory = Split-Path -Parent $File
$newDirectory = ($Directory | Out-String) -replace "C:\\test", "C:\Backup"
echo $newDirectory
Copy-Item $File $newDirectory -force -recurse
}
如您所见,$Files 变量将每一行拉入一个数组。每一行实际上是一个文件路径和名称。回声输出看起来很好,如下所示:
C:\test\testing\text.txt
C:\Backup\testing
第一个是要复制的原始文件位置,第二个是要复制到的文件夹。谁能帮我弄清楚这两条路径中的“非法字符”是什么。错误指向源路径。
完整的错误代码如下:
Copy-Item : Illegal characters in path.
At C:\users\lane.pulcini\desktop\searchfiles\testcopy.ps1:7 char:10
+ Copy-Item <<<< $File $newDirectory -force -recurse
+ CategoryInfo : NotSpecified: (:) [Copy-Item], ArgumentException
+ FullyQualifiedErrorId : S System.ArgumentException,Microsoft.PowerShell.Commands.CopyItemCommand
【问题讨论】:
-
请发布您收到的确切错误消息。
-
听起来你在某处有一个隐藏的角色,但我们需要未经修改的异常以获得更好的主意。您是否尝试使用
-LiteralPath作为Copy-Item中的源参数?它通常适用于奇怪的字符。前任。Copy-Item -LiteralPath $File -Destination $newdirectory -Force -
我刚刚编辑了我收到的错误
-
我刚刚尝试使用 -LiteralPath 并得到了同样的错误。
-
输入文件是否包含空行?
标签: powershell