質問: !WK_NUM! ( IF !Array_YMD[Array_Index]! LSS %%~tI ( SET Array[!Array_Index!]=!File_Name! SET Array_YMD[!Array_Index!]=%%~tI ) ====ここにはテーブルにためこむロジックがあります===== ここのロジックではちゃんと目的のファイルが ためこまれているのをechoにて確認済みです。 Array_Indexもここでカウントアップしています。 ) 日付を分解してみたり IF文にて !Array_YMD[Array_Index]! の部分を Array_YMD[!Array_Index!]にしてみたり色々試しましたが全くだめです。 echo で項目を表示しても echo で表示もされません。 どなたか教えて下さい。 よろしくお願い致します。
回答: `SETLOCAL enabledelayedexpansion`とかあるので、MSDOSの話じゃなくて、Windowsのコマンドプロンプトの話ですよね? 1.何をしたいのかが、質問文からもコードからも不明。 2.「ファイルは XXXXX_999_99.txt といったもので」と書きながら`1!File_Name:~5,3!`というのは文字数数え間違いのバグ 3.`IF !Array_YMD[Array_Index]! LSS %%~tI (`は、`Array_Index`の値を取り出していないのので、これもバグ 保存して参照するサンプルを付けておきます。 ``` @ECHO OFF SETLOCAL enabledelayedexpansion SET N=0 REM DATAにセット FOR %%F IN (*.txt) DO call :SET %%F REM DATAをそのまま表示 SET DATA REM DATAを参照 FOR /L %%I in (1,1,%N%) do call :GET %%I GOTO :EOF :SET SET /A N+=1 SET DATA[%N%]=%1 GOTO :EOF :GET ECHO NO_%1 is !DATA[%1]! GOTO :EOF ```