Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 从其内容重命名多个文件_Powershell_Rename - Fatal编程技术网

Powershell 从其内容重命名多个文件

Powershell 从其内容重命名多个文件,powershell,rename,Powershell,Rename,我有一个软件每天导出多个文件,没有扩展名,但实际上是文本文件。 文件名始终如下所示: RESULTS10220309014171 结果10220309014231 结果10220309015778 结果10220309014131 所有文件(Hl7协议行)的内容如下: MSH^ ~\&AppName| LIS|20190501004420 | ORU^R01 | 1905011A91C6C2450 | P | 2.3 | NE | SU PID | 1 | 602239 | | | | | |

我有一个软件每天导出多个文件,没有扩展名,但实际上是文本文件。 文件名始终如下所示:

RESULTS10220309014171
结果10220309014231
结果10220309015778
结果10220309014131
所有文件(Hl7协议行)的内容如下:

MSH^ ~\&AppName| LIS|20190501004420 | ORU^R01 | 1905011A91C6C2450 | P | 2.3 | NE | SU
PID | 1 | 602239 | | | | | | | | | | | |
PV1 | 1 | | | | | | | | | | | |
....   
所以前三行总是一样的。 我想从以PID开头的第二行中获取数字602239,并将文件重命名为:

602239
552547
336587
696334
取决于第二行中的数字

我已经搜索并尝试了多个代码,但都不起作用,我完全是PowerShell的初学者,因此我将感谢您的帮助

Get-ChildItem -Filter RESULTS*  | ForEach-Object { # Loop over files of interest
  $pidLine = (Get-Content $_.FullName -Head 2)[-1] # Extract 2nd line
  $newName = ($pidLine -split '\|+')[2]            # Get 3rd field
  $_ | Rename-Item -NewName $newName  -WhatIf      # Rename input file
}
注意:上面命令中的预览操作。一旦确定操作将执行所需操作,请删除
-WhatIf

注意:上面命令中的预览操作。一旦确定操作将执行所需操作,请删除
-WhatIf