RISOLTO Informazioni sintassi comando CMD

Stato
Discussione chiusa ad ulteriori risposte.

Fabrizio Resilli

Nuovo Utente
40
1
Ciao a tutti, spesso mi capita di eseguire dei comandi inanellati molto semplici da cmd. Per evitare di dover scriverli ogni volta a mano, uso l'operatore logico booleano del doppio and && per eseguire comandi a cascata. Su cmd, il suddetto operatore mi permette di eseguire il comando successivo SE E SOLO SE, quello precedente sia andato a buon fine. Mi capita di usarlo per esempio con comandi come questo:

Codice:
sfc /scannow && dism /Online /Cleanup-Image /CheckHealth && dism /Online /Cleanup-Image /ScanHealth && dism /Online /Cleanup-Image /RestoreHealth

O, nel caso di assistenza remota, questo mi risulta sempre ottimo

Codice:
ipconfig /release && ipconfig /renew

Poiché, se eseguissi solo il primo e perdessi la connessione sarebbero dolori, allora una volta eseguito il secondo comando riprende il tutto e io son felice di continuare a dare assistenza.

Ora, però, dovevo eseguire un comando per il ping di una serie di dispositivi presenti qui in biblioteca con un comando del tipo

Codice:
ping HOST1 && ping HOST2 && ping HOST3
eccetera

Purtroppo, se l'host non viene trovato (generando in output Impossibile trovare l'host HOST1. Verificare che il nome sia corretto e riprovare.) e il ping scade, quello viene visto come comando non andato a buon fine e lo script (se così si può chiamare) non prosegue.

Come posso risolvere? Come posso fare in modo che un comando venga eseguito dopo un altro che non è "andato a buon fine"?

PS: un altro esempio è quando eseguo un
Codice:
gpupdate /force
e il comando non riesce ad aggiornare le policy, il resto dello script non continua

Grazie mille per le vostre risposte

NB: non posso eseguire scansioni di rete e comunque mi interessa come sintassi in generale. Grazie!
 

Ale3Mac

Utente Èlite
1,812
1,773
CPU
R5 7600 (fisso) - i7 8700k (ufficio) - r5 4600H (portatile)
Dissipatore
NH-L12S (fisso) - NH-U12S (ufficio) - Lenovo "qualcosa" (portatile)
Scheda Madre
MSI B650I EDGE WIFI (fisso) - ASUS Z370A-Prime (ufficio) - Lenovo "qualcosa" (portatile)
HDD
Troppi... ;-)
RAM
2x16GB G.Skill Flare X5 (fisso) - 4x8GB G.Skill Ripjaws V (ufficio) - 2x16GB Crucial (portatile)
GPU
Intel ARC A750 (fisso) - AMD Vega 56 (ufficio) - integrata+GTX1650 (portatile)
Monitor
ASUS MG278Q (fisso) - 2x 1080p (ufficio) - Lenovo "qualcosa" (portatile)
PSU
Corsair SF750 (fisso) - Corsair RM750X (ufficio) - Lenovo "qualcosa" (portatile)
Case
Fractal Design Terra (fisso) - Corsair Obsidian 450D (ufficio) - Lenovo Ideapad Gaming 3 (portatile)
OS
Windows 11
Ho fatto una prova, a me funziona con l'operatore

&;

EDIT: in realtà basta anche mettere una sola

&

E' mettendone due che chiedi di fare il secondo task dopo il successo del primo (con || invece chiedi di fare il secondo task solo dopo il fallimento del primo), con una sola & invece chiedi di farli entrambi a prescindere dall'esito
 
Ultima modifica:
  • Mi piace
Reazioni: Fabrizio Resilli

Fabrizio Resilli

Nuovo Utente
40
1
Ho fatto una prova, a me funziona con l'operatore

&;

EDIT: in realtà basta anche mettere una sola

&

E' mettendone due che chiedi di fare il secondo task dopo il successo del primo (con || invece chiedi di fare il secondo task solo dopo il fallimento del primo), con una sola & invece chiedi di farli entrambi a prescindere dall'esito
Grandissimo, funziona! Ti ringrazio tanto!
 
Stato
Discussione chiusa ad ulteriori risposte.

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!