バッチ ファイル (folder.bat という名前) を使用して、"my folder" の下の各 foler 名に文字列 "_v0_1" を追加しています ("my folder" の下に約 100 個のフォルダーがあります)。
この行を含むonotherバッチファイルからバッチ(folder.bat)を呼び出しています(たとえば):
呼び出しフォルダー arbiter_logic
呼び出しフォルダー arbiter_logic_old
問題は、フォルダー名が変数名 (%1) よりも長く、それを避けたい場合にも、フォルダーの名前をバッチで変更することです。
変数 %1 とフォルダー名が完全に一致する場合にのみ名前変更アクションが実行されるようにします。これが私のコードです:
setlocal enabledelayedexpansion
pushd G:\my folder
for /f "tokens=* delims= " %%a in ('dir /b/ad') do (
set x=%%a
set y=!x:%1=%1_v0_1!
ren !x! !y!
)
::==
cd..
現在、望ましくない結果は次のとおりです。
arbiter_logic_v0_1
arbiter_logic_v0_1_old_v0_1
望ましい結果は、以下に示すように、バッチがフォルダー名を変更することです。
arbiter_logic_v0_1
arbiter_logic_old_v0_1
フォルダー名に検索と置換の方法を適用する必要があると想定していますが、その方法がわかりません。
バッチファイルがうまくいかない場合は、vbスクリプトも適切なソリューションになります。
前もって感謝します。シェイ。