我在使用以下脚本时遇到错误:
$server_names = Get-Content "C:\ArchivedFolders.txt"
Foreach ($server in $server_names){
Copy-Item "\\$server\C$\Mail\*" -Destination "\\10.100.101.50\mail\$server\" -Recurse
}
该脚本的目的是从多个文件夹复制文件并将其放入多个其他文件夹中。错误如下。
Copy-Item : Cannot retrieve the dynamic parameters for the cmdlet. Illegal characters in path.
At C:\mass_fetch.ps1:3 char:23
+ Copy-Item <<<< "\\$server\C$\Mail\*" -Destination "\\10.100.101.50\mail\$server\" -Recurse
+ CategoryInfo : InvalidArgument: (:) [Copy-Item], ParameterBindingException
+ FullyQualifiedErrorId : GetDynamicParametersException,Microsoft.PowerShell.Commands.CopyItemCommand
我哪里做错了?
答案1
我认为您需要C$
在源路径中转义。您的字符串是双引号,因此 PowerShell 可能会认为$\
它是一个变量。
$server_names = Get-Content "C:\ArchivedFolders.txt"
Foreach ($server in $server_names)
{
Copy-Item "\\$server\C`$\Mail\*" -Destination "\\10.100.101.50\mail\$server\" -Recurse
}