我在 C:\ Users \ First Last \ Documents \ Fun文件夹中有八个.csv文件。默认情况下,文件列出如下:
a - alpha
a - bravo
a - charlie
a - delta
b - alpha
b - bravo
b - charlie
b - delta
当我使用PowerShell排序以配对文件时,我在命令行运行脚本:
PS C:\Users\First Last\Documents\Fun Folder> ls *.csv | sort {$_.Name[4]}
因此,在PowerShell窗口中,我看到了按所需顺序排序的文件:
b - alpha.csv
a - alpha.csv
a - bravo.csv
b - bravo.csv
a - charlie.csv
b - charlie.csv
b - delta.csv
a - delta.csv
但是,在保存文件的实际文件夹中,顺序没有变化,并且文件仍按默认顺序列出。有可能解决吗?谢谢。
答案 0 :(得分:2)
Get-ChildItem
的输出进行排序。提供的文件名仅包含一个space dash space
序列,这是
Get-ChiltItem '* - *.csv' |
Rename-Item -NewName {"{0}{1}" -f (($_.BaseName -split ' - ')[1,0] -join ' - '),$_.Extension}
将对名称进行拆分,重新排序和组合以持久地重命名文件:
Name
----
alpha - a.csv
alpha - b.csv
bravo - a.csv
bravo - b.csv
charlie - a.csv
charlie - b.csv
delta - a.csv
delta - b.csv
要撤消/交换,请再次运行脚本。
答案 1 :(得分:1)
这不是它的工作方式。想象一个盒子里装满了很多东西。每个看过它的人都会根据自己的喜好订购这些东西。我按颜色对它们进行排序,然后放回去。然后按字母顺序对它们进行排序,然后再将它们放回去。下一个将所有东西都拆箱的家伙都不会反映这两个更改。
一种方法是使用"states.raw"
根据名称将它们移动到子文件夹中。
另一种方法是以对辅助名称起反应的方式编写Excel宏。