元のファイル
File 15 - Example.txt
File 2 - Example.txt
File 22 - Example.txt
File 3 - Example.txt
File 4 - Example.txt
File 5 - Example.txt
必要な出力
File 15 - Example.txt
File 02 - Example.txt
File 22 - Example.txt
File 03 - Example.txt
File 04 - Example.txt
File 05 - Example.txt
単一のファイルは、ren
を使用して簡単に名前を変更できます。
ren "File 2 - Example.txt" "File 02 - Example.txt"
Windows ren
またはrename
ツールを使用して、名前を一括で変更できますか?
はい。ただし、バッチファイルが必要です。
test.cmd:
@echo off
setlocal EnableDelayedExpansion
for /f "tokens=1,2,3,4" %%i in ('dir /b *Example.txt') do (
rem pad 2nd token with leading zero
set _num=0%%j
set _num=!_num:~-2!
ren "%%i %%j %%k %%l" "%%i !_num! %%k %%l"
)
endlocal
例:
> dir *Example.txt
Volume in drive F is Expansion
Volume Serial Number is 3656-BB63
Directory of F:\test\test
03/01/2019 11:30 0 File 15 - Example.txt
03/01/2019 11:30 0 File 2 - Example.txt
03/01/2019 11:30 0 File 22 - Example.txt
03/01/2019 11:30 0 File 3 - Example.txt
03/01/2019 11:30 0 File 4 - Example.txt
03/01/2019 11:30 0 File 5 - Example.txt
6 File(s) 0 bytes
0 Dir(s) 1,075,134,230,528 bytes free
> ..\test
> dir
Volume in drive F is Expansion
Volume Serial Number is 3656-BB63
Directory of F:\test\test
03/01/2019 11:54 <DIR> .
03/01/2019 11:54 <DIR> ..
03/01/2019 11:30 0 File 02 - Example.txt
03/01/2019 11:30 0 File 03 - Example.txt
03/01/2019 11:30 0 File 04 - Example.txt
03/01/2019 11:30 0 File 05 - Example.txt
03/01/2019 11:30 0 File 15 - Example.txt
03/01/2019 11:30 0 File 22 - Example.txt
6 File(s) 0 bytes
2 Dir(s) 1,075,134,230,528 bytes free
このPowerShellの1つのライナーは、ファイル名のすべての数字を2か所に展開します.PadLeft(2,'0')
:
(および数字をそのままにし、さらに多くの場所をそのままにします)
Get-ChildItem *[0-9]*.txt|Rename-Item -NewName {([regex]::Replace($_.BaseName,'\d+',{$args[0].Value.PadLeft(2,'0')}))+$_.Extension}
話題になるために、コマンドライン/バッチファイルにラップされます:
Powershell -Nop -C "Get-ChildItem *[0-9]*.txt|Rename-Item -NewName {([regex]::Replace($_.BaseName,'\d+',{$args[0].Value.PadLeft(2,'0')}))+$_.Extension}"
コマンドを実行する前に安全を確保するには、次のいずれかを追加します
-Confirm
名前を変更する前に尋ねる-WhatIf
whichはすべての名前を変更してリストしますwouldパラメータなしで実行します最後の直前"
編集:この質問は特に名前の変更に関するものであることに気づきましたコマンドラインから、それは質問に直接答えません...私はそれを他の人に役立つことを願って今のところそれを保ちます。
Total Commanderファイルマネージャーには、優れた一括名前変更ツールがあります。名前の変更のプレビュー、さまざまな名前の変更マスク、正規表現、フォルダー階層全体でのファイルの名前変更など、多くの機能が含まれています。同時に、それは非常に使いやすいです。
これは、その使用法を示すためのスクリーンショットです。
ステップバイステップ:
*.txt
[検索]ボックスで、[検索の開始]をクリックし、[リストボックスにフィード]を押して、次のファイルにマークを付けます Ctrl + A。内部フォルダー内のファイルの名前も変更する場合は、この手法を使用します。