我有以下 Powershell 代码
ls "*.zip" | % {
$name = $_.name
if (-not ($name -match '(?<x>\d\d)(?<y>\d{4})\.zip')) { continue }
$p = $matches["y"] + $matches["x"]
}
该代码在 ISE 中运行良好。但是,如果它在命令行 shell 中运行,则会出现以下错误。
Cannot index into a null array. At line:3 char:19 + $p = $matches[ <<<< "y"] + $matches["x"] + CategoryInfo : InvalidOperation: (y:string) [], RuntimeException + FullyQualifiedErrorId : NullArray
编辑
我使用if (-not ...) { continue }
是因为我不想要太多的大括号缩进。我纠正了这个-not ()
问题。(但与错误无关,我测试了名称始终为xxx999999.zip格式的文件)