Lista winnt@man.lodz.pl
[Lista archiwów] [Inne Listy]

Re: [WINNT] Windows Batch: substring?

To: winnt@man.lodz.pl
Subject: Re: [WINNT] Windows Batch: substring?
From: "Grzegorz Niemirowski" <grzegorz@grzegorz.net>
Date: Tue, 2 Apr 2024 17:30:52 +0200
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/

<Pop. w Wątku] Aktualny Wątek [Nast. w Wątku>