我需要更改get-childitem返回目录中文件名的顺序,因为以特定方式处理它们非常重要。文件名具有以下格式:f_1.csv,f_2.csv,f_3.csv,f_4.csv,...,f_10.csv,f_11.csv e.t.c. get-childitem返回的默认顺序为:f_1.csv,f_10.csv,f_100.csv。
一种解决方案是将文件名更改为f_001.csv,f_002.csv,f_003.csv,但我无法控制文件的创建方式,我不知道它们的编号(可能是数百,数千等)< / p>
我目前的代码是:
foreach($file in Get-ChildItem $path -Filter f_*.csv)
{
#process the files here
}
谢谢
答案 0 :(得分:1)
这样的东西?
Get-ChildItem -Filter f_*.csv |
sort @{Expression={[int]($_.name -replace 'f_(\d+).+','$1')};Descending=$false}