2017-02-25 11 views
1

のために、私は私が部分文字列のフォルダに、の.batファイルを除く、すべてのファイルの名前を変更することができます解決策を探しています、は末尾に追加のappendText、と言います。 I've tried this before and it worked out great!今私はそれをさらに改善する方法を失っています。私はそれが既にファイル名の中に部分文字列を持つファイルを認識し、それらのファイルの名前を変更するのをスキップします。条件改名内部の文

すべてでmy approachesで、私は失敗し、nonceを追加したり、部分文字列を2倍しました。

シナリオは、以下のような混合ファイルといくつかのフォルダのようになります。

EXAMPLEFOLDER
|
の.txt ---- FILE2 のappendText | | ---- FILE1.TXT
- - FILE3 のappendText .txtの
| ---- file4.txt

私はバッチファイルを実行すると、このフォルダ内のファイルは、このようなものを名前を変更したい:

をEXAMPLEFOLDER
| ---- file1ののappendText .txtの
| ---- FILE2 のappendText .txtの
| ---- FILE3 のappendText
.txtファイル| ---- FILE4 appendText現在、彼らは(すべてでまたはnone)このように名前を変更されている



.TXT:

EXAMPLEFOLDER
| ---- file1の のappendText
.txtファイル| ---- FILE2 APPENDTEXTAPPENDTEXT
.txtファイル| ---- FILE3 APPENDTEXTAPPENDTEXT
.txtファイル| ---- FILE4 のappendText。 txt

次に、私はすべてのサブフォルダを調べることでさらに改善するつもりです。

EXAMPLEFOLDER
| ---- FILE2 のappendText
.TXT | | ---- file1ののappendText
.txtの---- FILE3 のappendText
.TXT | ---- FILE4 のappendText .txtの
| ---- EXAMPLEFOLDER2
| ---- | ---- file21 のappendText .txtの
| ---- | ---- file22 附属書。私はまだ、すでにのappendTextサブが含まれているファイル名をリネーム停止する方法を見つけ出すことはできませんので

TXT私はまだそれを行っていませんでした。ソリューションがthis answerの上に構築されているなら、それは素晴らしいでしょう。誰か助けてくれますか?

+2

DIRコマンドを検索またはfindstrにパイプし、/ Vオプションを使用します。 – Squashman

+1

タイトルを変更する必要があります。タイトルはフォーマットとは関係ありません。 - >すでにテキストが追加されているディレクトリリストからファイルを除外します。既に提供されているリンクは、それを正確に行う方法を示しています。 – LotPings

答えて

2
@echo off 
setlocal EnableDelayedExpansion 

set "var=APPENDTEXT" 
for /F "delims=" %%a in ('dir *.* /b /a-d ^| findstr /v /i "\.bat$" ') do (
    set "name=%%~Na" 
    if "!name:%var%=!" equ "!name!" ren "%%a" "%%~na%var%%%~xa" 
) 
pause 
+0

完璧に実行!どうもありがとう!! –