我一直在使用
remove-item -path C:\...
删除文件夹和文件,但我最近试图删除Program Files文件夹中的文件,我收到错误:
找不到接受参数'Files \ New'的位置参数。
试图查看它是否只是语法,但似乎不是。
remove-item -path C:\Program Files\New -force
还有一个以防64位机器
remove-item -path C:\Program Files (x86)\New -force
两者都不起作用。我所有的其他remove-item
都有效。
任何帮助都会很棒!
答案 0 :(得分:2)
你的命令:
remove-item -path C:\Program Files\New -force
被解析为带有值-path
和开关参数C:\Program
的字符串参数-force
。您的命令Files\New
中还有一个部分。它不是以短划线开头的,因此PowerShell会尝试将其绑定到任何位置参数,但它不能,所以它说:
A positional parameter cannot be found that accepts the argument 'Files\New'
只要你的论证中有空格,你就必须在它周围加上单引号或双引号:
remove-item -path "C:\Program Files\New" -force
答案 1 :(得分:1)
@ fvu的建议是正确的。您需要带有空格的任何路径名称周围的引号。
remove-item -path 'C:\Program Files\New' -force
Powershell非常聪明,可以知道什么时候你会把remove-item -path c:\temp
之类的东西放在" -path"之后。应该是一个字符串,所以PS将它视为一个字符串。但它不能用空格来做,因为空格也是参数之间的分隔符。因此,解决方案是明确地将其设为字符串。
在这种情况下,单引号('
)和双引号("
)之间没有区别。如果需要将Powershell变量注入字符串,则使用后者。因为你不这样做,我建议单身。