2017-03-02 8 views
0

"TF-ICOT160017_JATS.xml"というファイルの名前を "TF-ICOT160017.xml"に変更します。プログラムの下で親切にチェックし、このコンセプトに適したバッチプログラムを提供してください。Regexのコンセプトでファイルの名前を変更したい

@echo off 
set /p file=Enter File Path: 
:Main 
echo. 
echo 1. Rename 
echo 2. Exit 
echo. 
set /p choice=Enter Your choice: 
IF %choice% == 1 goto File_Rename 
IF %choice% == 2 exit 
:File_Rename 
ren TF-[A-Z][A-Z][A-Z][A-Z][0-9][0-9][0-9][0-9][0-9][0-9]_JATS.xml TF-[A-Z][A-Z][A-Z][A-Z][0-9][0-9][0-9][0-9][0-9][0-9].xml 
goto Main 
+0

私が内蔵されていたファイルやフォルダの名前を変更するためのPerlの正規表現をサポートするマルチリネーム機能ファイルマネージャ総司令官(シェアウェア)を使用することをお勧めします。そして、大きな利点は、名前の変更が完了する前に、プログラミングスキルなしで設定したものを使用して、選択したファイル(またはフォルダ)の名前を変更する方法を確認できることです。 Total Commanderは、名前変更パラメータのすべての変更後に、ファイル/フォルダリストの直後に期待される結果を、ユーザーによる検証のために名前変更パラメータ以下に表示します。トータル・コマンダーはいったんやった名前を元に戻すこともできます。 – Mofi

+0

@dbenhamは、通常のエクスプレッションでファイルの名前を変更するための、本当にクールなハイブリッド[スクリプト](http://www.dostips.com/forum/viewtopic.php?t=6081)を作成しました。 – Squashman

+0

これまでの答えや提案にかかわらず、ファイル名がすべて同じフォーマットに準拠していれば、 'SET'コマンド部分文字列関数や' FOR/F'コマンドを使ってファイル名をデリミタとして強調しています。 – Squashman

答えて

0

単一のコマンドラインは、このファイルの名前変更操作のために使用することができるように見えます:

ren TF-??????????_JATS.xml TF-??????????.xml 

もう一つのヒント:

ユーザーが2つのどちらかを選択させるためのset /Pを使用しないでくださいオプション。 RETURNまたはENTERを入力しても何も入力せずに誤ってバッチファイルが構文エラーで終了することがあります。ユーザーは1または2以外のものを自由に入力することができ、バッチファイルが再び失敗します。

コマンドCHOICEを使用してください。コマンドプロンプトウィンドウを開き、choice /?を実行してこのコマンドのヘルプを表示します。

@echo off 
:Main 
echo/ 
echo 1. Rename 
echo 2. Exit 
echo/ 
choice /C12 /N "Please make your choice: " 
if errorlevel 2 exit /B 
ren TF-??????????_JATS.xml TF-??????????.xml 
goto Main 
+0

ありがとうございました。 –

+0

名前の変更に疑問符を使用することには注意が必要です。それは必ずしも弾丸ではない。そのリンクを再度検索しようとしています。私は数週間前に別のフォーラムに投稿しましたか、それともここにあったのでしょうか? – Squashman

関連する問題