質問: ファイル名から#を削除するバッチスクリプト(特定のディレクトリのみ) 特定のディレクトリ(pdfドキュメント)内のファイル名から#文字を削除するスクリプトを探しています。私はいくつかの同様の例を見てきましたが、それはすべて少し混乱しています!
回答: 2013年です。powershellを使用する必要があります。get-childitem | where-object {$_.name -match '#'} | foreach-object { rename-item -path $_.name -newname $($_.name -replace "#", "") -whatif } 問題のディレクトリに移動し、その行を実行します。 #が付いているすべてのファイルを検索し、それぞれの名前を変更します。 '-whatif'を削除して、実際に操作を実行します。エイリアスとデフォルトを使用する短いバージョンは次のようになります。ls | ? {$_.name -match "#"} | foreach { rni $_.name $($_.name -replace "#", "")} 少なくとも長いバージョンは、1980年代のバッチ構文よりも読みやすいように思えます。ここでの唯一の不可解な部分は、powershellの「$ 。name」、「$」がループ内の現在のオブジェクトを参照していることです。ここではすべての場合で現在のファイルに。 -newnameパラメーターの式が必要なため、$()にラップする必要があります。