Newsgroup: it.comp.os.win.windows7
Titolo: uno stupido programma o script

La mia esigenza è:
 
due cartelle, con dentro alcuni files con lo stesso nome.
 
Mi serve partire dalla cartella A e copiare tutti i files sovrascrivendoli 
nella cartella B escludendo quelli già non presenti.
 
In pratica devo aggiornare dei files, ma solo quelli presenti, gli altri che 
non sono presenti non devono essere copiati.
 
Voglio che si sovrascrivano perchè le date nel file aggiornato potrebbero 
essere 1-1-1980 e quelli più vecchi 1-1-2001
 
Chi mi aiuta? son sicuro che si può fare con uno scriptino in bat con 
istruzioni if qualcosa, ma non me ne intendo molto. 
 

 istruzioni if qualcosa, ma non me ne intendo molto.
 
 
for %1 in (DirectoryB\*.*) do if exist DirectoryA\%1 Copy /y 
directoryA\%1 DirectoryB
 
Scritto al volo, verifica che funzioni..
-- 
Luca Amicone

DirectoryB
 
l'ho scritto cos�:
 
for %1 in (C:\temp\b\*.*) do if exist C:\temp\a\%1 Copy /y C:\temp\a\%1 
C:\temp\b
 
e l'ho messo in un .bat ma non funziona, non da nessun errore e se lo scrivo 
in dos mi ripete tutti i files che dovrebbe copiare ma non li copia e non da 
nessun messaggio ne di copia ne di errore 
 

 e l'ho messo in un .bat ma non funziona
 
In effetti c'� un errore. Quando %1 viene "esploso" si porta dietro 
tutto il path di B per cui l'IF si trova una condizione sempre FALSE e 
quindi non viene eseguito.
La soluzione pi� semplice sarebbe quella di togliere il path dal ciclo 
FOR per cui:
CD C:\temp\b
for %1 in (*.*) do if exist C:\temp\a\%1 Copy /y C:\temp\a\%1 .
(il . indica la directory corrente)
-- 
Luca Amicone
Ducati "Erede" 800 Sport *in vendita*
Suzuki "Floppy" DRZ 400 S
Ducati "Ganja" Multistrada 1100 S

(il . indica la directory corrente)
 
neanche cos�... ho provato anche a mettere il bat nella directory B 
togliendo l'istruzione cd ma niente, non esegue niente. 
 

 togliendo l'istruzione cd ma niente, non esegue niente.
 
Installa cygwin, imposta  A e B ed esegui questo script
 
#!/bin/sh
s="A"
d="../B"
cd "$s" || exit 1
find . | while read
do
	[ "$REPLY" == '.' ] && continue
	dest="$d/$REPLY"
	if [ -d "$REPLY" ]
	then
		mkdir -p "$dest"
	else
		f="$(dirname "$dest")/$(basename "$REPLY")"
		[ -e "$f" ] || continue
		echo cp "$REPLY" "$f"
		cp "$REPLY" "$f"
	fi
done
 

 nella cartella B escludendo quelli già non presenti.
 
Robocopy o, se non ricordo male, xcopy fanno quello che ti serve
 
Enrico

 Robocopy o, se non ricordo male, xcopy fanno quello che ti serve
 
Porca l'Oca, xcopy /U /Y era giï¿œ bell'e fatto...! :-p
Va beh avemo scherzato!
-- 
	Luca Amicone
--
"PRB: Event Log Does Not Resize Without Clearing" 
http://support.microsoft.com/?id=142032
 

Va beh avemo scherzato!
 
Come complicarsi la vita per niente ehhehe
E dire che xcopy lo uso in continuazione dai tempi del dos ma quell'opzione 
mi era sfuggita, grazie comunque. 
 

 istruzioni if qualcosa, ma non me ne intendo molto.
.

istruzioni if qualcosa, ma non me ne intendo molto.
 
directory sincronizer....
lo setti come vuoi
 
Marco 
 

 Va beh avemo scherzato!
 
KISS non e` solo una parola da sfoggiare a San Valentino :)
 
Enrico