Powershell 对数级数的问题

Powershell 对数级数的问题,powershell,Powershell,我正在尝试按数字顺序复制日志,我希望我的output.txt记录上次复制的文件,但是我遇到了一个问题,当我的脚本从log_9.txt转到log_10.txt时,放入文本文件的值保持在log_9.txt,即使它复制了所有文件 dir c:\PS1 *.bat | ForEach { $variable = "$($_.Name) 'n$(Get-content $_.FullName)" Set-Content -Value $variable -Path c:\PS1\Outpu

我正在尝试按数字顺序复制日志,我希望我的output.txt记录上次复制的文件,但是我遇到了一个问题,当我的脚本从log_9.txt转到log_10.txt时,放入文本文件的值保持在log_9.txt,即使它复制了所有文件

dir c:\PS1 *.bat | ForEach {
    $variable = "$($_.Name) 'n$(Get-content $_.FullName)"
    Set-Content -Value $variable -Path c:\PS1\Output.txt
    $pull = Get-Content C:\PS1\Output.txt
    copy-item $source\$pull -Destination $dest -Verbose

        }
      } 

下面的命令显示了如何在没有输入文件扩展名的情况下对基本名称文件名进行排序,首先按\前面的文本进行词汇排序,然后按\后面的数字进行数字排序:

以上结果如下-注意正确的数字排序:

名称值 -- --- BaseName日志2 基本名称日志9 BaseName日志10
dir C:\PS1*.bat默认情况下会生成一个按字母顺序排序的文件列表,其中log_1.txt位于第一位,然后是log_10.txt,如果有10个编号为1-10的日志文件,则log_2.txt一直到log_9.txt。我应该使用什么来以数字代替字母顺序?
# The input simulates dir (Get-ChildItem) output.
@{ BaseName = 'log_10' }, @{ BaseName ='log_9' }, @{ BaseName = 'log_2' } | 
  Sort-Object { ($_.BaseName -split '_')[0] }, { [int] ($_.BaseName -split '_')[-1] }