PDA

Visualizza versione completa : [batch] assegnare il risultato di un xcopy ad una variabile


xmatrix83
26-02-2006, 03.24.45
Scusate come posso assegnare il risultato di un xcopy ad una variabile??
io pensavo cosi' ma non funziona:

set pippo=
xcopy c:\*.* d:\*.* /e /d /y /c /h /k /q > %pippo%

roberto45
26-02-2006, 09.52.15
Penso dovresti esplorare l'errore dato da xcopy per ogni file copiato lanciandolo da un ciclo FOR.

xmatrix83
26-02-2006, 11.43.53
guarda l'xcopy con quei parametri restituisce solo:

N file copiati

a me proprio questa scritta che deve entrare nella variabile

roberto45
26-02-2006, 12.00.01
A quanto ne so le variabili dos sono solamente stringa; quindi dovresti costruire un contatore degli eventi componendo la stringa con una variabile diversa per ogni cifra del numero.

roberto45
26-02-2006, 12.12.25
Ho controllato i parametri che mi hai dato sia per xcopy che per xcopy32 e non mi risulta che i comandi restituiscano il numero dei file copiati: ne sei sicuro?

xmatrix83
26-02-2006, 12.14.19
si il parametro /q restituisce solo il numero dei file copiati

xmatrix83
26-02-2006, 13.07.49
adesso ti spiego quello che volevo fare,magari trovi una soluzione + efficente.

Io devo eseguire un operazione solo se vengono copiati 0 file.

Quindi pensavo assegnarre il risultato ad una variabile,e poi confrontare il valore della variabile con la stringa "0 file copiati"

xmatrix83
26-02-2006, 13.09.55
mi sarebbe venuto in mente un altro modo, ma come posso dire:
se pippo.txt contiene la stringa "0 file copiati" comando

roberto45
26-02-2006, 15.16.51
A me risulta che il parametro /q non fa visualizzare il nomi dei file copiat.

Hai provato a controllare con IF ERRORLEVEL dopo XCOPY ?

xmatrix83
26-02-2006, 20.47.41
appunto... eliminando i nomi dei file copiati rimane solo il numero di file copiati

xmatrix83
27-02-2006, 01.17.08
ummmm la soluzione degli errorlevel sarebbe proprio l'ideale.
Purtroppo non sembra mi funzioni,xche sul sito della microsoft ho trovato che errorlevel 1= No files were found to copy
che sarebbe proprio quello che cerco io!

ma anke se copia 0 file mi esce con errorlevel 0,cio
Files were copied without error

Xtefano
27-02-2006, 08.58.51
usa il FOR .... ;)

Se guardi qui (http://www.wintricks.it/forum/showthread.php?s=&postid=1117754#post1117754) proprio quello che ho fatto nel secondo FOR: l'output del comando GREP inserito nella variabile %%N

FOR /? per ulteriori informazioni ......


Buon divertimento ;)

xmatrix83
27-02-2006, 12.14.22
grazie dopo lo guardo meglio