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: "radekp@konto.pl" <radekp@konto.pl>
Date: Tue, 02 Apr 2024 22:30:32 +0200
Tue, 02 Apr 2024 22:26:08 +0200, w
<39qo0jl92nru575asgb9eim8kmlihlh7ef@4ax.com>, "radekp@konto.pl"
<radekp@konto.pl> napisał(-a):

> Tue, 2 Apr 2024 21:03:57 +0200, w <uuhkqr$v4p$1$grzegorz@news.chmurka.net>,
> "Grzegorz Niemirowski" <grzegorz@grzegorz.net> napisał(-a):
> 
> > radekp@konto.pl <radekp@konto.pl> napisał(a):
> > > Stosuję to Delayed.
> > > Zrobiłem tak:
> > > set fn=%%~nF
> > > for /F "delims=;" %%F in (list.txt) do (
> > >     if %fn% == %today% (
> > >    ...
> > > )
> > > działa.
> > > Tylko za chiny nie mogę teraz wyodrębnić fragmentu %fn% tak jak przy:
> > > set day=%date:~0,2%
> > > Wprowadzenie %fn:~0,9% zamiast %fn% cały czas daje pełny ciąg.
> > 
> > Samo włączenie opóźnienia rozwiązywania zmiennych to jeszcze nie wszystki. 
> > Trzeba jeszcze z niego skorzystać za pomocą wykrzykników.
> > @echo off
> > SetLocal EnableDelayedExpansion
> > 
> > for /F "delims=;" %%F in (list.txt) do (
> > set fn=%%~nF
> > set fn2=!fn:~0,9!
> > echo !fn!
> > echo !fn2!
> > )
> 
> I to Ci działa?
> 
> Bo mnie:
> for /F "delims=;" %%F in (list.txt) do (
>     set fn=%%~nF
>     echo !fn! 
> 
> daje w konsoli:
> 
> set fn=2023_05_15 18_20_55
>  echo !fn!
>  if !fn! == 04_02 (

I także:

    set fn=%%~nF
    set fn2=!fn:~5,9!
    echo !fn!  
    echo !fn2!  

set fn=2022_11_05 13_23_03
 set fn2=!fn:~5,9!
 echo !fn!
 echo !fn2!

Nosz k***, to niemożliwe. Może set w pętli działa jakoś po microsoftowemu?


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