1

フォルダー構造を平坦化し、ある方法で各親ディレクトリ名をファイル名に含めたいと思います。私はこれを試しましたが、エラーが発生します:

Missing ')' in method call

何が問題なのかよくわかりません

(ls -r -include *.ext) | % { mv -literal $_\3 $_\3.Name.Insert(0, [String]::Format("{0} - ", $_\3.Directory.Name))}
4

2 に答える 2

4

これを試して:

ls . -r *.ext -name | ?{!$_.PSIsContainer} | mi -dest {$_ -replace '\\','_'} -whatif

または V3 の場合:

ls . -r *.ext -name -file | mi -dest {$_ -replace '\\','_'} -whatif

-whatif実際に移動するには、 を取り外します。

于 2012-12-19T21:28:29.130 に答える
1

フォルダー構造をフラット化し、名前が変更されたすべてのファイルをルート ディレクトリに移動しますか? 例えば:

$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"
} 
于 2012-12-19T19:56:21.363 に答える