1

以下に示すような名前のファイルを含むフォルダーがあります

0003.4b3d943b8df71af248d12f8b2e7a224a
0004.1874ab60c71f0b31b580f313a3f6e777
0005.1f42bb885de0ef7fc5cd09d34dc2ba54
0006.7a32642f8c22bbeb85d6c3b5f3890a2c
0007.859c901719011d56f8b652ea071c1f8b
.
.
.

これらの拡張子を削除してこれらのファイルの名前を変更したいのですが、必要なのはfile name一部だけです。

0003
0004
0005
0006
.
.
.
.

スクリプトを使用してこれを達成する方法は?

4

4 に答える 4

4

フォルダー内のすべてのファイルの名前を変更する場合、必要なのは次のとおりです。

ren * *.

Windows RENAME コマンドはワイルドカードをどのように解釈しますか?を参照してください。詳細については。

名前を変更してはならないファイル (「通常の」拡張子のファイル) がフォルダー内にある場合は、次のように動作します。

for /f "eol=; delims=" %%F in ('dir /b /a-d *^|findstr /r "\.................................$"') do @ren "%%F" *.

\.ドットに.一致し、32 は拡張子の 32 文字に一致します。は$、正規表現の一致を行末に固定します。

バッチ スクリプト内からではなく、コマンド プロンプトから直接コマンドを実行する場合は、それぞれ%%Fを に変更します。%F

于 2013-06-06T15:11:09.680 に答える
3

お目当てのラインは

for %%I in (d:\temp\*) DO ren "%%I" "%%~nI"

d:\temp名前を変更するファイルの場所はどこですか。バッチ ファイルは別のフォルダーに配置する必要があることに注意してください。そうしないと、名前も変更されます。また、これにより、ターゲット フォルダー内のすべてのファイルの名前が変更されることに注意してください。

于 2013-06-06T14:49:55.667 に答える
3

これを試して:

for /f "delims=" %%i in ('dir /a-d /b') do echo ren "%%~fi" "%%~ni"

echo出力を見て、問題がなければ削除します。

于 2013-06-06T14:51:21.500 に答える
-1

このようなものを使用してください

for /f "delims=" %%A in ('dir /a:-d /b /o:n') do echo %%~nA
于 2013-06-06T14:42:44.157 に答える