質問: 複数のファイル名の最後に「テキスト」を追加する 以下のコードを使用して、ファイル名の終わりにテキストを追加します。1.mp3 2.mp3 とする必要があります:1text.mp3 2text.mp3 しかし、それは次のように変わりました:1.mp3text 2.mp3text コード:@echo on for %%a in ("c:\users\user123\desktop\mp3\*.mp2") do ( call :renamefiles "%%~a" "%%~nxa" ) goto eof :renamefiles set fname=%~2 set renname=%fname=% ren "%~1" "%renname%text%" goto e
回答: この状況では、検索テキストに正規表現を含むpowershell rename-itemコマンドが機能します。get-childitem -filter '*mp3' -recurse | rename-item -newname {$_.name -replace '(.*)\.mp3','$1text.mp3'} (.*)は、.が改行以外の任意の文字に一致し、*が0回以上一致する正規表現グループです。 \.は、mp3より前のピリオドと一致します。次に、置換テキストに$1を使用すると、最初のグループ(.*)で一致したテキストが挿入され、その後に、残りのテキストが続きます。 これは、可変長のファイル名、およびスペース、アンダースコア、その他の文字の組み合わせを含むファイル名で機能します。