我是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)来忽略" %"文件中的(空格%)。
答案 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' }
我遇到的最大障碍是要意识到需要管道的东西和没有管道的东西。