Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Fragment nazwy pliku w pliku batch

8 views
Skip to first unread message

rad...@konto.pl

unread,
Jan 17, 2024, 1:25:28 PMJan 17
to
Mam plik o nazwie np.
(100)(1000)jakasnazwa.txt

albo

100,1000,jakaś nazwa.txt
(mogę to zmienić)

i chcę te dwie pierwsze liczby przekazać w pliku bat jako opcja w wywoływanej
komendzie, np.

wykonaj.exe -start 100 -koniec 1000


Da się to zrobić?

Grzegorz Niemirowski

unread,
Jan 17, 2024, 5:12:51 PMJan 17
to
rad...@konto.pl <rad...@konto.pl> napisał(a):
Ale co konkretnie? Właśnie przekazałeś te liczby do wykonaj.exe. Co jeszcze
ma się zadziać, że potrzebny jest skrypt? Tych plików jest więcej?

--
Grzegorz Niemirowski
https://www.grzegorz.net/

rad...@konto.pl

unread,
Jan 18, 2024, 5:26:02 AMJan 18
to
Wed, 17 Jan 2024 23:12:50 +0100, w <uo9iu1$sjv$1$grze...@news.chmurka.net>,
"Grzegorz Niemirowski" <grze...@grzegorz.net> napisał(-a):

> rad...@konto.pl <rad...@konto.pl> napisał(a):
> > Mam plik o nazwie np.
> > (100)(1000)jakasnazwa.txt
> > albo
> > 100,1000,jakaś nazwa.txt
> > (mogę to zmienić)
> > i chcę te dwie pierwsze liczby przekazać w pliku bat jako opcja w
> > wywoływanej komendzie, np.
> > wykonaj.exe -start 100 -koniec 1000
> > Da się to zrobić?
>
> Ale co konkretnie? Właśnie przekazałeś te liczby do wykonaj.exe. Co jeszcze
> ma się zadziać, że potrzebny jest skrypt? Tych plików jest więcej?

Tak, chcę aby skrypt odczytał te dwie liczby i przekazał do pliku batch (będzie
w nim pętla for dla wielu plikach). Z tym już sobie poradziłem (dir *.txt do
pliku i dalej for).

+ jeszcze przekazał nazwę pliku bez liczb ("jakaś nazwa.txt") :)

rad...@konto.pl

unread,
Jan 18, 2024, 5:27:31 AMJan 18
to
Thu, 18 Jan 2024 11:24:30 +0100, w
<3uuhqitaat4c738oa...@4ax.com>, "rad...@konto.pl"
<rad...@konto.pl> napisał(-a):

> Tak, chcę aby skrypt odczytał te dwie liczby i przekazał do pliku batch (będzie
> w nim pętla for dla wielu plikach). Z tym już sobie poradziłem (dir *.txt do
> pliku i dalej for).
>
> + jeszcze przekazał nazwę pliku bez liczb ("jakaś nazwa.txt") :)

A dokładnie to jak ze zmiennej %%F (for /F "delims=;" %%F in (dirlist.txt) )
wydobyć takie dane.

Grzegorz Niemirowski

unread,
Jan 18, 2024, 7:00:07 AMJan 18
to
rad...@konto.pl <rad...@konto.pl> napisał(a):
>> Tak, chcę aby skrypt odczytał te dwie liczby i przekazał do pliku
>> batch (będzie w nim pętla for dla wielu plikach). Z tym już sobie
>> poradziłem (dir *.txt do pliku i dalej for).
>> + jeszcze przekazał nazwę pliku bez liczb ("jakaś nazwa.txt") :)

OK, teraz jasne.

> A dokładnie to jak ze zmiennej %%F (for /F "delims=;" %%F in
> (dirlist.txt) ) wydobyć takie dane.

Jeśli określisz tokeny, to w %%F będziesz mieć pierwszy token, w %%G drugi
itd.

for /f "tokens=1,2 delims=," %%f in ('dir /b *.txt') do (
wykonaj.exe -start %%f -koniec %%g
)

rad...@konto.pl

unread,
Jan 19, 2024, 6:33:46 AMJan 19
to
Thu, 18 Jan 2024 13:00:05 +0100, w <uob3d5$6pr$1$grze...@news.chmurka.net>,
"Grzegorz Niemirowski" <grze...@grzegorz.net> napisał(-a):
Dzięki. Też wygooglałem, że bez zagnieżdżonej drugiej pętli for nie da rady.

for /F "delims=;" %%F in (list.txt) do (
for /F "tokens=1,2,3 delims=@" %%A in ("%%F") do (

a w środku

wykonaj.exe -start %%A -koniec %%B %%F


0 new messages