PowerShell命令获取文件名字符串中编号最高的文件

时间:2019-03-27 01:43:18

标签: powershell

我是PowerShell的新手。我的文件在一个文件夹中,文件夹中有一个数字。我正在尝试查找编号最大的文件并更改该名称。

我可以使用以下命令返回文件:

Get-ChildItem -Path C:\Temp\Wayne\Folder1\File*.txt |
    Sort-Object |
        Select-Object -Last 1 -ExpandProperty Name

它返回:

Get-ChildItem -Path C:\Temp\Wayne\Folder2\File*.txt |
    Sort-Object |
        Select-Object -Last 1 -ExpandProperty Name

PS C:\> File0005.txt

我想将File0005.txt更改为FileCHANGED(TodaysDate).txt,然后将其移至C:\Temp\Wayne\Folder1\File*.txt

我能够返回正确的文件,但是在达到移动文件的目的之前,我一直试图重新命名文件。

2 个答案:

答案 0 :(得分:0)

尝试:

Get-ChildItem "C:\Temp\File*.txt" | sort Name -Descending | select -First 1 | %{

$Newname="{0:yyyy-MM-dd-HH-mm-ss-fffff}({1:yyyy-MM-dd-HH-mm-ss-fffff})" -f $_.LastWriteTime,  (Get-Date)
Rename-Item $_.FullName -NewName $Newname
}

答案 1 :(得分:0)

  • 您的(默认情况下,按字母顺序)排序方法仅适用于长度相等的数字。
  • 更通用的方法是使用$ToNatural by Roman Kuzmin,它会将所有带有零的数字加到唯一的长度上

在我的空Ramdrive A:\上,以下脚本:

## Q:\Test\2019\03\27\SO_55368572.ps1
$SrcDir = 'A:\Folder1'  # 'C:\Temp\Wayne\Folder1'
$DstDir = 'A:\Folder2'  # 'C:\Temp\Wayne\Folder2'

## create test folders,files
MD $SrcDir,$DstDir | Out-Null
1..5|New-Item -ItemType File -Path {"{0}\File{1:D4}.txt" -f $SrcDir,$_}|Out-Null

"_"*10+" Before "+"_"*10
Tree A:\ /F

Get-ChildItem -Path $SrcDir -Filter File*.txt |
  Sort-Object | Select-Object -Last 1 |
    Move-Item -Destination {Join-Path $DstDir (
      "FileChanged({0:yyyy-MM-dd}){1}" -f (Get-Date),$_.Extension)}

"_"*10+" After "+"_"*10
Tree A:\ /F

Tree A:\ /F

产生此(德国语言环境)输出:

> Q:\Test\2019\03\27\SO_55368572.ps1
__________ Before __________
Auflistung der Ordnerpfade für Volume RamDisk
Volumeseriennummer : 5566-7788
A:\
├───Folder1
│       File0001.txt
│       File0002.txt
│       File0003.txt
│       File0004.txt
│       File0005.txt
│
└───Folder2
__________ After __________
Auflistung der Ordnerpfade für Volume RamDisk
Volumeseriennummer : 5566-7788
A:\
├───Folder1
│       File0001.txt
│       File0002.txt
│       File0003.txt
│       File0004.txt
│
└───Folder2
        FileChanged(2019-03-27).txt