我正在尝试使用powershell基于该文件的第一行文本重命名postscript文件

时间:2015-02-21 01:51:15

标签: powershell postscript

我是PowerShell的新手,通常只使用一行命令来完成工作,但有人问我是否可以从主机创建一批postscript文件并根据第一个重命名该文件的行然后将它们移动到网络位置。

我已经对谷歌进行了一些研究,但我发现的所有内容都涉及从文件中检索文本和写入新文件。

非常感谢任何帮助。

编辑:

如果文本将是文件的最后一行而不是第一行,这似乎会更容易。我已将其设置为可以使用下面的代码更改单个文件名。现在只是为了让它设置为完成目录中的所有文件。

$orgfilename = 'c:\postscript\test.PS'
$tempfilename = Get-Content $orgfilename | Select-Object -Last 1
$newfilename = $tempfilename.Substring(3)
move-item $orgfilename c:\newlocation\$newfilename'.ps' 

我添加了.Substring(3)来忽略" %"文件中的(空格%)。

2 个答案:

答案 0 :(得分:0)

Rename-Item testfile.xml -NewName(Get-Content testfile.xml | select -First 1)

确保没有像这样的特殊字符? / \ ^< >在你文件的第一行。

答案 1 :(得分:0)

这就是我最终的结果。我添加了一个过滤器,以防万一除了postscript文件添加到文件夹位置。

 Get-ChildItem 'c:\postscript'  -FILTER  "*.ps" |  ForEach-Object { 
   $filename = Get-Content $_.FullName | Select-Object -Last 1
   $newfile = $filename.Substring(3) 
   move-item $_.FullName c:\newlocation\$newfile'.ps' } 

我遇到的最大障碍是要意识到需要管道的东西和没有管道的东西。