对文件夹内容进行排序,使用LastWriteTime修改文件

时间:2014-05-23 14:46:22

标签: powershell

拥有此代码:

gci D:\Files\Folder |
    sort LastWriteTime | select -Last 1 |
    foreach-object {$line -replace "\<", ""}

不工作。试过很多变化。需要更换&#34;&lt;&#34;文件中最后修改的文件中的字符。管理以选择正确的文件并将其写入powershell控制台。只是无法删除&#34;&lt;&#34; LastWriteTime文件中的字符。

2 个答案:

答案 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