PDA

View Full Version : [BATCH] Ciclo For?


riccardospurinisi87
11-02-2016, 11:40
Ciao a tutti,
premetto che č la prima volta che provo a fare un "programmino" e ho bisogno che il numero contenuto dentro un file.txt sia letto per poi eseguire un comando qualora il numero sia uguale a 2 e 5 .
Come posso fare? Io ho fatto

wmic path win32_localtime get dayofweek > %DAY% (genera nella seconda riga del file il numero del giorno)

Per poterlo leggere ho fatto:

FOR /F "skip=1 tokens=1" %%a IN (%DAY%) DO IF (%%a EQU 4) goto "echo eseguo il montaggio del disco D:\"

Sicuramente ho sbagliato qualcosa, ma non so cosa? C'č un modo per potermi accorgere da solo, magari qualche programma che faccia il debug dei bat?

Grazie in anticipo.
Riccardo

x_Master_x
12-02-2016, 17:37
: x_Master_x
@ECHO OFF
Set Result=False
For /f "skip=2 tokens=2-4 delims=," %%a in ('WMIC Path Win32_LocalTime Get DayOfWeek /Format:csv') Do Set Day=%%a
ECHO Day: %Day%
If %Day% == 3 Set Result=True
If %Day% == 5 Set Result=True
If "%Result%" == "True" (
ECHO La prossima volta metti un codice funzionante sotto tag CODE
)
PAUSE

riccardospurinisi87
15-02-2016, 17:12
: x_Master_x
@ECHO OFF
For /f "skip=2 tokens=2-4 delims=," %%a in ('WMIC Path Win32_LocalTime Get DayOfWeek /Format:csv') Do Set Day=%%a
ECHO Day: %Day%
If %Day% == 5 (
ECHO La prossima volta metti un codice funzionante sotto tag CODE
)
PAUSE
Ok. se invece volessi fare if per i numeri 3 e 5, devo fare due righe di IF oppure basta aggiungere
IF %DAY% == 3,5

x_Master_x
16-02-2016, 16:43
Due righe di If e non si quotano i messaggi con i post cosė si posso editare, nel caso.

riccardospurinisi87
18-02-2016, 13:31
Due righe di If e non si quotano i messaggi con i post cosė si posso editare, nel caso.

Ciao X_Master, ma se volessi fare un altro ciclo di for per leggere il file backup-data.txt contenete il seguente testo: Backup del volume C: completato. Come lo potrei strutturare? Ho fatto la stessa identica cosa del ciclo che mi hai suggerito cambiando i tokens ma non appare nessun valore.

x_Master_x
19-02-2016, 14:39
: x_Master_x
@ECHO OFF
For /f "tokens=1-5 delims= " %%A in ("Backup del volume C: completato") Do (
ECHO %%A %%B %%C %%D %%E
ECHO Solo C: = %%D
)
PAUSE


Che ne dici di leggere una guida sull'argomento? Esempio i primi risultati su google:
FOR /F - tokens and delims (http://www.robvanderwoude.com/ntfortokens.php)
FOR /F (http://ss64.com/nt/for_f.html)