2017-03-27 15 views
0

に基づいてファイル名を変更します。 1つは「TEST ONE.txt」、もう1つは「LEARN NEW.vcd」です。 * .vcdを使って* .txtの名前を変更するバッチスクリプトを作成する必要があります。 バッチスクリプトは、 "TEST ONE.txtファイル"の名前を "LEARN NEW.txt"に変更する必要があります。 \ DEVフォルダ:シェルスクリプトは、私は私のフォルダ内の2つのファイルを持っている別のファイル名

は私がTXTで一つだけのファイルと私のフォルダCでのVCDの拡張子を持つ一つのファイルを持っています。

私は次のスクリプトを使用してみましたが、それはVCD拡張のフルネームをピックアップし、スペースの後にすべてをドロップしない - ので、私はちょうどLEARN.txtを得る:(

@echo ON 
CD "C:\DEV folder" 
setlocal enabledelayedexpansion 
for /F %%A in ('dir /b *.vcd') do ( 
    set xname= %%~nA 
    ren *.txt !xname!.txt 
) 

おかげ -

デシベルを

答えて

0

FOR /Fのデフォルトは一つだけ(1)トークンを取る。あなたはtokens=*を使用して、すべてを取るためにそれを強制することができますすることが可能と思われる。引用が重要である。

@echo ON 
CD "sub" 
setlocal enabledelayedexpansion 
for /F "usebackq tokens=*" %%A in (`dir /b *.vcd`) do (
    set xname=%%~nA 
    ren "*.txt" "!xname!.txt" 
) 
+0

あなたは遅延拡張と変数も必要ありません: 'ren" * .txt "" %%〜nA.txt "' – Stephan

関連する問題