• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Kod bat, przerobienie kodu

42 Warsaw Coding Academy
+1 głos
425 wizyt
pytanie zadane 11 marca 2022 w Inne języki przez artix132 Użytkownik (870 p.)
edycja 11 marca 2022 przez artix132

#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

 

komentarz 12 marca 2022 przez VBService Ekspert (256,600 p.)
A nie ułatwiło by Tobie zmapowanie tych dysków na tym komputerze, gdzie ma działać skrypt i operowanie na tych dyskach?

1 odpowiedź

+1 głos
odpowiedź 11 marca 2022 przez AnimaVillis Stary wyjadacz (13,410 p.)

Napiszę Ci jak krok po kroku musisz to zrobić, naskrobałeś sobie sam część kodu to dasz radę!

  1. Połączenie z hostem + sprawdzenie czy połączenie jest
  2. Sprawdzenie danych związanych z wielkością dysków.
  3. Listowanie katalogów przy użyciu grep.
  4. Wypisanie danych folderów

Zadam pytanie prostsze dlaczego nie python albo powershell?

komentarz 12 marca 2022 przez VBService Ekspert (256,600 p.)
edycja 12 marca 2022 przez VBService

 @artix132;

Zadam pytanie prostsze dlaczego nie python albo powershell?

albo nawet vbscript?  wink

 

P.S  przejście na jakiś język skryptowy (interpretowany), ma m. in. taką zaletę, że można zrobić kolekcję z "przefiltrowanych" nazw dysków i za pomocą jednej pętli przeglądać tę kolekcję i w "ciekawszy" (bardziej czytelny, z większą ilością detali w opisie itp.) sposób prezentować dane wynikowe. - IMHO  smiley

Podobne pytania

0 głosów
2 odpowiedzi 192 wizyt
pytanie zadane 15 kwietnia 2024 w Inne języki przez sensor Użytkownik (680 p.)
0 głosów
3 odpowiedzi 533 wizyt
pytanie zadane 15 kwietnia 2024 w Inne języki przez sensor Użytkownik (680 p.)
0 głosów
1 odpowiedź 630 wizyt
pytanie zadane 28 stycznia 2023 w Inne języki przez tubylec01 Obywatel (1,550 p.)

93,385 zapytań

142,384 odpowiedzi

322,540 komentarzy

62,745 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...