拥有此代码:
gci D:\Files\Folder |
sort LastWriteTime | select -Last 1 |
foreach-object {$line -replace "\<", ""}
不工作。试过很多变化。需要更换&#34;&lt;&#34;文件中最后修改的文件中的字符。管理以选择正确的文件并将其写入powershell控制台。只是无法删除&#34;&lt;&#34; LastWriteTime文件中的字符。
答案 0 :(得分:2)
Windows不允许&lt;文件名中的字符,所以我想你想修改文件内容删除所有出现。如果是这样,有很多方法可以做到这一点。例如:
# Getting the name of the last modified file.
$file_name = Get-ChildItem D:\Files\Folder | Sort-Object LastWriteTime `
| ? { ! $_.PSIsContainer } | Select-Object -Last 1 | % {$_.FullName }
# Reading the file into a single string.
$string = Get-Content $file_name | Out-String
# Modifying the string and writing the output back to the file.
$string -replace "<", "" | Out-File $file_name
初始代码的问题是$ line未在任何地方定义。您需要先从文件中读取文本。
答案 1 :(得分:0)
如果您正在尝试更换&lt;在文件名中然后这应该工作:
foreach-object {$_.Name.Replace("<", "")}
要编辑文件的内容,您可以执行以下操作:
$file = gci D:\Files\Folder | sort LastWriteTime | select -Last 1
$temp = $file | gc | foreach-object {$_.Replace("<", "")}
$temp | Out-File $file.FullName