我想展平文件夹结构,并以一种方式将每个父目录名称包含到文件名中。我试过这个,但得到一个错误:
Missing ')' in method call
我完全不明白有什么问题
(ls -r -include *.ext) | % { mv -literal $_\3 $_\3.Name.Insert(0, [String]::Format("{0} - ", $_\3.Directory.Name))}
我想展平文件夹结构,并以一种方式将每个父目录名称包含到文件名中。我试过这个,但得到一个错误:
Missing ')' in method call
我完全不明白有什么问题
(ls -r -include *.ext) | % { mv -literal $_\3 $_\3.Name.Insert(0, [String]::Format("{0} - ", $_\3.Directory.Name))}
试试这个:
ls . -r *.ext -name | ?{!$_.PSIsContainer} | mi -dest {$_ -replace '\\','_'} -whatif
或者如果在 V3 上:
ls . -r *.ext -name -file | mi -dest {$_ -replace '\\','_'} -whatif
删除-whatif
以实际执行移动。
您想展平文件夹结构并将所有重命名的文件移动到根目录吗?例如:
$rootPath = 'C:\TempPath'
(ls $rootPath -r -include *.ext) | %{
[string]$newFilename = $_.Name.Insert(0, [String]::Format("{0} - ", $_.Directory.Name))
#write-host $newFilename
mv -literal $_ "$rootPath$newFilename"
}