我有下面的Powershell脚本,我正在努力完成它。
Get-ChildItem -Path 'C:\temp\xml' -Include '*.xml' | ForEach-Object { $FileName = $_.Fullname $Pattern = "</Date>" $FileOriginal = Get-Content $FileName $date = Get-Date $DateStr = $date.ToString("yyyyMMdd") [String[]] $FileModified = @() Foreach ($Line in $FileOriginal) { $FileModified += $Line if ($Line -match $pattern) { $FileModified += "<CDate>$DateStr</CDate>" } } $FileModified = $FileModified -replace "CUR","PIT" $FileModified = $FileModified -replace "Current","Time" Set-Content $fileName $FileModified }
当我尝试运行它时,会收到以下消息:
cmdlet ForEach-Object at command pipeline position 2 Supply values for the following parameters: Process[0]:
有人能看出我做错了什么吗?
echo hi | foreach-object { $_ }
即使在脚本中,这也会失败。它是一个cmdlet,而不是像“if”这样的语句,因此它需要在同一行中使用-Process参数。