#bat #cmd
Mam 10komputerów i w każdym po 2 dyski, które mnie interesują. Na każdym dysku są foldery o nazwach 20220311, 20220310, 20220309 itd. jest też kilka folderów o innych nazwach, ale nie interesują mnie. Chcę połączyć się zdalnie z każdym z nim i odczytać pojemność dysku oraz najstarszy i najnowszy plik, który ma w nazwie datę. Mam plik txt z adresami ip.
Wypisze mi wszystkie pliki na dyskach D i E:
for /F "tokens=1,2" %%v IN (C:\User\...AdresyIp.txt) DO (
dir /od \\%%v\D$ >> C:\User\...Raport.txt
dir /od \\%%v\E$ >> C:\User\...Raport.txt
)
Wypisze mi najnowszy i najstarszy plik, ale razem z innymi folderami, interesują mnie tylko te których nazwa zaczyna się na "202..."
FOR /F "delims=" %%j IN (`dir /b /ad-h /t:a /od \\konkretne_ip\D$`) DO SET a=%%j
echo: najnowszy folder: %a%
FOR /F "delims=" %%k IN (`dir /b /ad-h /t:a /o-d \\konkretne_ip\E$`) DO SET b=%%k
echo: najnowszy folder: %b%
Pytanie:
1) jak połączyć te 2 kody?
2) jak dodać filtr na nazwę, żeby innych folderów nie brało pod uwagę?
Myślałem o czymś takim, ale nie chce działać:
@echo off
for /F "tokens=1,2" %%v IN (C:\User\...AdresyIp.txt)
DO (
FOR /F "delims=" %%j IN (`dir /b /ad-h /t:a /od \\%%v\D$`) DO SET a=%%j
echo: najnowszy folder: %a%
FOR /F "delims=" %%k IN (`dir /b /ad-h /t:a /o-d \\%%v\E$`) DO SET b=%%k
echo: najnowszy folder: %b%
)
pause
ends