2016-04-28 7 views
2

ファイル名に接頭辞を付けてディレクトリ内のファイルの名前を変更しようとしています。この場合、追加しようとしている接頭辞は1-です。ファイルのリストの各ファイル名に接頭辞を追加しようとしています。プレフィックスがすでに追加されているファイルを確認するにはどうすればよいですか?

@echo off 
@setlocal enableextensions enabledelayedexpansion 
cd %folder% 

for %%a in (*.txt) do (
set var tem=%%a 
rem checking file name contains 1- as prefix 
if not x%tem:1-=%==x%tem% (
echo file is renamed all ready 
)else(
ren "%%a" "1-%%a" 
) 
) 

予想される出力:名前が変更されたファイルは、再び

+1

名前を変更すべきではないbashのではない、それはあなたのコードサンプルでWindows CMDスクリプトです。あなたの質問が何であるかを確認してください。 – Amadan

+0

バッチスクリプトの代わりにPowerShellを使用した場合、 'gci * .txt |名前-notmatch '^ 1-' | ren -newname {"1 - " + $ _。Name} ' – TessellatingHeckler

+0

遅延拡張を有効にしていますが、適用していません。 '%tem%'の代わりに '!tem!'を使う必要があります... – aschipfl

答えて

0
@echo off 
setlocal enableextensions enabledelayedexpansion 
cd %folder% 

for %%a in (*.txt) do (
    rem Set file name to "tem" variable 
    set "tem=%%a" 
    rem Checking if two first chars of file name are "1-" 
    if "!tem:~0,2!" == "1-" (
     echo file is renamed allready 
    ) else (
     ren "%%a" "1-%%a" 
    ) 
) 
関連する問題