radekp@konto.pl <radekp@konto.pl> napisał(a):
I jeszcze jedno:
To działa:
set year=%date:~6,4%
set month=%date:~3,2%
set day=%date:~0,2%
set today="%year%-%month%-%day%"
echo %date% %today%
I mam to co oczekiwałem.
Natomiast tutaj:
for /F "delims=;" %%F in (list.txt) do (
set fn=%%F
if %fn% == %today% (
fn zawsze pozostaje pustym ciągiem. Why?
A potrzebuję z niej wyciągnąć 10 pierwszych znaków
Pisałem w poprzednim poście. CMD próbuje rozwiązywać wszystkie zmienne od
razu, zanim w ogóle zacznie wykonywać skrypt. Na początku wartość %%F jest
pusta, więc fn też będzie puste. Gdy skrypt wejdzie do pętli, wartość fn nie
jest zmieniana. To jest zupełnie inaczej niż w innych językach
programowania. Dlatego wspomniałem o EnableDelayedExpansion.
--
Grzegorz Niemirowski
https://www.grzegorz.net/
|