IF 语法在 powershell 斗争中



你们能解决吗?我很确定这只是轻微的语法错误,因为我是菜鸟......无论输入($name)是什么,我总是得到"错误的文件"。

$name = "DE123456.zip"
if ($name -contains "DE") 
{
  Get-ChildItem C:test$name | 
   % {
     $to  = $_.basename.length - 2
     $path = $_.basename.substring( 0, $to)
     & "C:test7z.exe" "x" "-y" $_.fullname "-oC:test$path"
     }
  }
ELSE
{
"Wrong file"
}
脚本

运行之前会发出语法错误。

您的问题是-contains作为运算符只检查数组中是否存在值。您希望改为在字符串上使用 .Contains 方法:

if ($name.Contains('DE')) ...

更改

if ($name -contains "DE") 

if ($name -match "DE") 

和:

get-help about_comparison_operators

要知道区别。

最新更新