使用字符串执行命令并不适用于powershell

时间:2017-01-08 13:31:48

标签: powershell

这是我的代码,它不起作用:

$brisanje=dat.txt, dat2.txt
Remove-Item $brisanje

我在这里遇到的错误是

删除项目:无法找到路径' C:\ Users \ stefan \ Desktop \ brisanjedat \ dat.txt,dat2.txt'因为它不存在。

但是当我这样写它时,它就像一个魅力:

Remove-Item dat.txt, dat2.txt

我已经坚持这个问题几个小时,任何解决方案?

2 个答案:

答案 0 :(得分:5)

PowerShell解析器具有two modes,具体取决于上下文。

当处于参数模式上下文时(如Remove-Item dat.txt,dat2.txt的情况),它将裸字视为可扩展字符串列表。

表达式模式(默认值)中,表达式开头的单词被视为命令,而powershell将尝试解析它,这就是您看到错误的原因。

使用引号确保解析器知道您将dat1.txt,dat2.txt视为字符串数组:

$brisanje="dat.txt","dat2.txt"

有关详细信息,请参阅Get-Help about_Parsing的输出

答案 1 :(得分:1)

在代码中使用点(。)源也是个好主意。 Shell和Scripts具有不同的范围,当您点源变量时,将两者结合起来。我点了所有的东西,特别是如果我一遍又一遍地使用它或在不同的环境中使用它。

cd C:\Users\stefan\Desktop\brisanjedat\ $brisanje= ".\dat.txt",".\dat2.txt" Remove-Item $brisanje