Rozumiem, że aby uzyskać datę z pliku przekazanego do podprogramu jako argumentu, należy ustawić ten argument jako zmienną w podprogramie. Czy to jest poprawne? To mi nie wychodzi, więc zastanawiam się, czy nie w pełni rozumiem, co się dzieje. Mogę użyć przekazanego argumentu w praktycznie każdym innym podprogramie kodu, oprócz ekstrakcji daty.podprocedura skryptu wsadowego: przekazywanie argumentów
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, ale część '% 1% odnosi się do nieistniejącej zmiennej o nazwie 1 ' jest oczywiście błędne. Odnosi się także do "% 1", a następnie rozpoczyna się nowa ekspansja procentowa, ale kończy się niepowodzeniem, ponieważ nie ma procentu zamknięcia ani cyfry dostępu do parametru. Btw. Niemożliwe jest rozwinięcie nazwy zmiennej zaczynającej się od cyfry z procentowym rozszerzeniem (wewnątrz plików wsadowych) – jeb