拡張子が001 = 159のファイルをループする必要があります。このディレクトリをループして変数を設定するfor/Lループを作成しました。問題は、プログラムが動作しないように変数を設定しないことです。どんな助けもありがとうございます。Windowsのバッチファイル:Lループの変数がトラッキングされていない
ECHO ON
SET LOCAL ENABLEEXTENSIONS
SET LOCAL ENABLEDELAYEDEXPANSION
chdir /d D:
SET /P practice="Enter Practice 3 letters "
SET String=%Practice%
CALL :UpCase String
SET String
echo String
pause
SET /P FileNumber="Enter Amount of files "
SET /P year="Enter Year "
SET /P typeSet="Enter 1-NoConvert 2-NeedConvert "
if %typeset% equ 1 set Type=NoConvert
if %typeset% equ 2 set Type=NeedConvert
set /P WaveType="Enter Wave Number "
set wave=Wave%waveType%Documents
echo FileNumber %FileNumber%
pause
FOR /L %%i IN (1,1,%FileNumber%) DO (
echo %%i
set Ext=_00%%i
pause
set src_folder=D:\
set index=Index_%String%_%year%_%type%_%Ext%.idx
echo indexFile %index%
echo %wave%
if not exist D:\ChartMaxx\%wave%\%String%_%year%_%type%_%Ext% mkdir
D:\ChartMaxx\%wave%\%String%_%year%_%Type%_%Ext%
set dst_folder=D:\ChartMaxx\%wave%\%String%_%year%_%Type%_%Ext%
)
@REM End For L Loop
:UpCase
:: Subroutine to convert a variable VALUE to all UPPER CASE.
:: The argument for this subroutine is the variable NAME.
FOR %%i IN ("a=A" "b=B" "c=C" "d=D" "e=E" "f=F" "g=G" "h=H" "i=I" "j=J"
"k=K" "l=L" "m=M" "n=N" "o=O" "p=P" "q=Q" "r=R" "s=S" "t=T" "u=U" "v=V"
"w=W" "x=X" "y=Y" "z=Z") DO CALL SET "%1=%%%1:%%~i%%"
GOTO:EOF
'SET LOCAL ENABLEEXTENSIONS'と' SET LOCAL ENABLEDELAYEDEXPANSION'は、コマンドプロンプトウィンドウ内からバッチファイルを実行するとエラーメッセージを表示します。正しいコマンドは 'setlocal EnableExtensions EnableDelayedExpansion'です。コマンドプロンプトウィンドウ 'help 'で実行すると、標準のWindowsコマンドのリストが出力されます。 'set /?'、 'setlocal /?'、 'endlocal /?'を実行すると、これらの3つのコマンドのヘルプが1つ以上のウィンドウページに出力されます。 – Mofi
コマンドライン 'choice/C 12/N/Mを使用する 'NoConvertの場合は1、NeedConvertの場合は2を入力し、次の行' errorlevel 2の場合( "Type = NeedConvert"を設定)、それ以外の場合( "Type = NoConvert"を設定)。これらの2つのコマンドのヘルプについては、コマンドプロンプトウィンドウ 'choice /?'と 'if /?'で実行してください。 – Mofi
__FOR__ループでは、コマンドブロック内の環境変数の定義/変更に必要な遅延拡張を使用するために '%Ext%〜'の代わりに '_!Ext:〜-3! 'を使用する必要があります。その数字の最後の3文字は実際に「001」から「159」になります。コマンドライン 'set Ext = _00 %% i'は' set Ext = 00%i'に変更する必要があります。バッチコード全体を修正するのに十分な助けとなるはずです。バッチコードを改善するために必要なものが何千も書かれているので、 '[batch-file]'というタグでスタックオーバーフローを検索してください。 – Mofi