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