我正在尝试编写一个脚本,以查找并删除远程主机上的特定文件。为了做到这一点,脚本会在几个数组中循环遍历位置和文件名列表。其中一个需要执行此操作的文件是称为“101” "" "lyrics.vbs”的文件,但我无法找到一种方法来检测文件,而不给出错误消息“test-path : Illegal characters in path”,并参考““”标记。我已经搜索并尝试了将文件路径保存到文本文件中,并使用“get-item -literalpath”调用它的解决方案,但这也没有起作用。我还尝试在文件路径中的每个“”之前使用反引号“`”,但仍然得到相同的结果。用于此目的的代码段如下:
非常感谢。
编辑:在每个
$users | ForEach-Object {
#Creating an array file locations
$filelist = @("c$\Users\$($_.Name)\101__lyrics.vbs","c$\Users\$($_.Name)\101" "" "lyrics.vbs","c$\Users\$($_.Name)\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\101" "" "lyrics.vbs>")
foreach ($file in $filelist)
{
$newfilepath = Join-Path "\\$computer\" "$file"
if (test-path $newfilepath)
{
Write-Host -foregroundcolor Yellow "$newfilepath file exists"
try
{
Remove-Item $newfilepath -force -recurse -ErrorAction Stop
}
catch
{
Write-host -ForegroundColor red "Error while deleting $newfilepath on $computer.`n$($Error[0].Exception.Message)"
continue
}
Write-Host -ForegroundColor green "$newfilepath file deleted`n"
}
}
非常感谢。
编辑:在每个
"
之前添加反引号并使用-literalpath
时,我收到的错误消息是:test-path : Illegal characters in path.
At .\Rb.ps1:126 char:22
+ if (test-path -literalpath $newfilepath)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (\\AAZAJCMW0459\...`" `"lyrics.vbs:String) [Test-Path], ArgumentException
+ FullyQualifiedErrorId : ItemExistsArgumentError,Microsoft.PowerShell.Commands.TestPathCommand
-literalpath
和不使用-literalpath
时收到的错误消息。 - Mike Sherrill 'Cat Recall'101" "" "lyrics.vbs
,其中包括双引号空格双引号双引号空格双引号?我猜测是某个工具添加了额外的引号。目录列表显示文件夹中的内容是什么? - Richard$filelist
中最后一个字符串末尾还有一个>
。 - Mathias R. Jessen