我一直在寻找解决这个问题但到目前为止没有任何工作。
我想要选择1个/多个文件,将硬编码值(例如"DIAB`r`n"
)添加到文件内容的开头,然后写入另一个卷。
我是否必须做多个陈述,或者我可以在一个陈述中做些什么。
到目前为止,我尝试使用2个语句:
# Find the file/s .HL7, move to a new destination and change the filename to add "DIAB-"
# to the front - this is working
Get-ChildItem -Path $DiabetesPath |
Where-Object { (!$_.PSIsContainer -and $_.Name -like "*.HL7") } |
Move-Item -Destination $DestinationPath -PassThru |
Rename-Item -NewName {"DIAB-" + $_.Name}
# this is what is not working - after files moved to destination trying to add some text
# to the start of the file content
Get-ChildItem $DestinationPath -Recurse -Filter DIAB*.HL7 | ForEach-Object
{
$content = Get-Content $_.FullName
Set-Content $_.FullName -Value "DIAB`r`n", $content
}
当我尝试时,它说:
cmdlet ForEach-Object at command pipeline position 2 Supply values for the following parameters process[0]:
当我输入内容时,它会继续:
process[1]: process[2]: ...
不确定发生了什么。
答案 0 :(得分:0)
哇!没有意识到{
的位置会影响任何事情。
移动了{
旁边的ForEach-Object
,然后就可以了。
Get-ChildItem $DestinationPath -Recurse -Filter DIAB*.HL7 | ForEach-Object {
$content = Get-Content $_.FullName
Set-Content $_.FullName -Value "DIAB`r`n", $content
}