サブルーチンに引数として渡されたファイルから日付を取得するには、その引数をサブルーチン内の変数として再設定する必要があります。これは正しいです?これは私にとって以来のことではないので、何が起こっているのか十分に理解していないのだろうかと思っています。実際には日付抽出以外の他のサブルーチンコードで渡された引数を使用できます。バッチスクリプトサブルーチン:引数の受け渡し
set setupEXE=setup.exe
CALL :SUB_CheckCorrectDate %setupEXE%
GOTO EOF
::----------------------------------
:SUB_CheckCorrectDate
set filename=%1%
:: SUCCESSFUL
for %%x in (%filename%) do set FileDate=%%~tx
@For /F "tokens=1-3 delims=-/ " %%A in ('@echo %FileDate%') do @(
Set file_Month=%%A
Set file_Day=%%B
Set file_Year=%%C
)
:: GET ERROR
for %%x in (%1%) do set FileDate=%%~tx
@For /F "tokens=1-3 delims=-/ " %%A in ('@echo %FileDate%') do @(
Set file_Month=%%A
Set file_Day=%%B
Set file_Year=%%C
)
GOTO:EOF
:: ------------------
:EOF
+1、しかし、一部 '%1%という名前の、存在しない変数を参照1'明らかに間違っています。それは '%1'も参照し、新しいパーセント拡張が開始されますが、パラメータにアクセスするための終了パーセントも数字もないので失敗します。 Btw。 %拡張で数字で始まる変数名を展開することは不可能です(バッチファイル内) – jeb