Punto informatico Network
Login Esegui login | Non sei registrato? Iscriviti ora (è gratuito!)
Username: Password:
  • Annuncio Pubblicitario

BATCH IF condizioni multiple

Il forum per tutti i developer. Leggere attentamente il regolamento di sezione prima di postare.

BATCH IF condizioni multiple

Messaggioda cele_82 » mar set 07, 2010 1:40 pm

CIao,
ho cercato quà e là con Google ma non ho trovato risposta.

Ho bisogno di creare una condizione "concatenata" per un IF in una file BATCH. Per le rendervi l'idea devo verificare questo:

IF VAR1 > %PIPPO% AND VAR2 < %PIPPO% GOTO SUCCESSO


purtroppo di operatori AND o OR in giro nn mi pare di averne trovati.

Se per caso fosse un limite dei BATCH con cosa posso fare la stessa cosa? (sempre senza installare componenti aggiuntivi nella macchina XP che uso)


Grazie.
Avatar utente
cele_82
Neo Iscritto
Neo Iscritto
 
Messaggi: 8
Iscritto il: mar set 07, 2010 1:35 pm

Re: BATCH IF condizioni multiple

Messaggioda Andy94 » mar set 07, 2010 4:12 pm

Ciao! Vedo che è il tuo primo post, quindi un cordiale benvenuto nel forum da parte mia! [MLI]

Teoricamente, che io sappia, questa cosa è liberamente fattibile, quindi nessuna limitazione. Devi semplicemente concatenare i controlli quando imposti l'IF. E' più facile a farsi che a dirsi. Prova con una sintassi come questa.
Codice: Seleziona tutto
if VAR1 > %PIPPO% (
  if VAR2 < %PIPPO% (
    GOTO SUCCESSO
  )
)

Spero di esserti stato utile, un saluto.
[ciao]
Avatar utente
Andy94
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 9998
Iscritto il: lun apr 09, 2007 8:39 pm

Re: BATCH IF condizioni multiple

Messaggioda cele_82 » mar set 07, 2010 7:20 pm

utilissimo funziona! per caso sai come mettere in variabile il giorno della settimana? (Lunedì Martedì...)



Grazie ancora.
Avatar utente
cele_82
Neo Iscritto
Neo Iscritto
 
Messaggi: 8
Iscritto il: mar set 07, 2010 1:35 pm


Re: BATCH IF condizioni multiple

Messaggioda Andy94 » mar set 07, 2010 7:27 pm

Il comando date /t mostra la data corrente in formato GG/MM/AAAA. Successivamente puoi rigirarla come meglio credi.
Avatar utente
Andy94
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 9998
Iscritto il: lun apr 09, 2007 8:39 pm

Re: BATCH IF condizioni multiple

Messaggioda cele_82 » mar set 07, 2010 7:40 pm

Si il comando l'ho presente ma come faccio a creare un IF %GIORNO%==LUN ?

se faccio date /t mi escono solo fuori i numeri nn stringhe, sai come convertirla?
Avatar utente
cele_82
Neo Iscritto
Neo Iscritto
 
Messaggi: 8
Iscritto il: mar set 07, 2010 1:35 pm

Re: BATCH IF condizioni multiple

Messaggioda Andy94 » mar set 07, 2010 8:18 pm

Questo estrae il numero del giorno con lo zero iniziale.
Codice: Seleziona tutto
%Date:~0,2%

Non credo esista il modo di estrarre direttamente il nome del giorno. Forse con una sostituzione prendendo i giorni da un array, ma è una idea teorica e le mie conoscenze non arrivano fino a qui.
Avatar utente
Andy94
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 9998
Iscritto il: lun apr 09, 2007 8:39 pm

Re: BATCH IF condizioni multiple

Messaggioda cele_82 » mer set 08, 2010 7:56 am

K se trovo ti faccio sapere.
Avatar utente
cele_82
Neo Iscritto
Neo Iscritto
 
Messaggi: 8
Iscritto il: mar set 07, 2010 1:35 pm

Re: BATCH IF condizioni multiple

Messaggioda cele_82 » mer set 08, 2010 8:37 am

Grazie a

http://forum.soiware.it/phpbb3/viewtopic.php?f=2&t=34

e

http://www.computing.net/answers/window ... 43503.html

ho finalizzato questo:


echo.|command /C date|find "Mer" > "weekday.tmp"
for /f "tokens=5" %%a in ('type "weekday.tmp"') do set weekday=%%a
echo.|command /C date|find "Wed" > "weekday.tmp"
for /f "tokens=5" %%a in ('type "weekday.tmp"') do set weekday=%%a


è un po' elaborato ma funge.
Avatar utente
cele_82
Neo Iscritto
Neo Iscritto
 
Messaggi: 8
Iscritto il: mar set 07, 2010 1:35 pm

Re: BATCH IF condizioni multiple

Messaggioda cele_82 » mer set 08, 2010 10:16 am

cele_82 ha scritto:Grazie a

http://forum.soiware.it/phpbb3/viewtopic.php?f=2&t=34

e

http://www.computing.net/answers/window ... 43503.html

ho finalizzato questo:


echo.|command /C date|find "Mer" > "weekday.tmp"
for /f "tokens=5" %%a in ('type "weekday.tmp"') do set weekday=%%a
echo.|command /C date|find "Wed" > "weekday.tmp"
for /f "tokens=5" %%a in ('type "weekday.tmp"') do set weekday=%%a


è un po' elaborato ma funge.


Errore mio il secondo tokens deve essere 4 nn 5 quindi

echo.|command /C date|find "Mer" > "weekday.tmp"
for /f "tokens=5" %%a in ('type "weekday.tmp"') do set weekday=%%a
echo.|command /C date|find "Wed" > "weekday.tmp"
for /f "tokens=4" %%a in ('type "weekday.tmp"') do set weekday=%%a
Avatar utente
cele_82
Neo Iscritto
Neo Iscritto
 
Messaggi: 8
Iscritto il: mar set 07, 2010 1:35 pm

Re: BATCH IF condizioni multiple

Messaggioda cele_82 » gio set 09, 2010 1:38 pm

Giusto per concludere la cosa, se qualcuno leggesse questo thread in futuro. in windows XP in italiano il comando date o la variabile %date% riportano ad esempio 09/09/2010 nel sistema operativo in inglese invece viene riportato pure il giorno senza fare il macello di weekday.tmp
Avatar utente
cele_82
Neo Iscritto
Neo Iscritto
 
Messaggi: 8
Iscritto il: mar set 07, 2010 1:35 pm

Re: BATCH IF condizioni multiple

Messaggioda M@ttia » gio set 09, 2010 4:07 pm

Ti ringrazio a nome del forum per avere postato la soluzione completa "per i posteri" [^]
</IE><FIREFOX>
Avatar utente
M@ttia
Moderatore
Moderatore
 
Messaggi: 8363
Iscritto il: lun giu 09, 2003 2:18 pm
Località: Ticino - Estero

Re: BATCH IF condizioni multiple

Messaggioda cele_82 » lun set 13, 2010 4:41 pm

Update:
senza ricorrere al file esterno basta usare in questo modo il comando for.


for /f "tokens=5" %%a in ('"echo.|command /C date|find "Mer""') do set weekday=%%a
Avatar utente
cele_82
Neo Iscritto
Neo Iscritto
 
Messaggi: 8
Iscritto il: mar set 07, 2010 1:35 pm


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti

Powered by phpBB © 2002, 2005, 2007, 2008 phpBB Group
Traduzione Italiana phpBB.it

megalab.it: testata telematica quotidiana registrata al Tribunale di Cosenza n. 22/09 del 13.08.2009, editore Master New Media S.r.l.; © Copyright 2008 Master New Media S.r.l. a socio unico - P.I. 02947530784. GRUPPO EDIZIONI MASTER Spa Tutti i diritti sono riservati. Per la pubblicità: Master Advertising