PDA

Visualizza la versione completa : [BATCH] Controllare se directory e file esistono gi


FaberF
08-03-2011, 07:26
:dh: Ciao a tutti

sono un bel p di giorni che cerco di risolvere un problema su un file .bat senza
riuscirci. Debbo anche dire per che non sono un mago nella programmazione.

Spero proprio che tra voi pluriesperti ci sia qualcuno che possa aiutarmi.
(ora vi metto alla prova con questo che per me un rompicapo)

==== ecco la SITUAZIONE:

**** Ho una cartella in c:\ di nome "CartellAppoggio", dentro la quale un altro script copia una altra CARTELLA con tutti i suoi file, che chiameremo "Pippo" ( ==>> c:\Cartellappoggio\Pippo )

**** La CARTELLA Pippo Viene poi copiata dentro una cartella in C:\ achivio che si chiama "Archivio" e contiene altre mille cartelle similari, ognuna con il suo nome.

**** Una volta copiata in C:\Archivio, la cartella c:\CartellAppoggio\Pippo viene cancellata per fare posto alla cartella successiva, di un altro nominativo, ad esempio "Pluto"
( ==>> c:\CartellAppoggio\Pluto ) e cos via.

**** CartellAppoggio quindi contiene sempre solo UN FILE ma con nome diverso.



==== ecco il PROBLEMA:
Come faccio a dire alla procedura batch che si occupa di copiare il file in
C:\CartellAppoggio di non farlo se il nome della cartella gi presente
nella cartella archivio ??

==== ecco alcune mie Considerazioni:
Sarebbe semplicissimo risolvere con

if EXIST CartellAppoggio[nome file] c:\Archivio\ ........

Ma non cos pech purtoppo in nome del file CAMBIA SEMPRE e non sono riuscito
con nessun comando utilizzando ad esempio *.* del tipo:
if EXIST CartellAppoggio\*.* c:\Archivio\ ........
perch non viene accettato a meno che non abbia sbagliato sintassi-

Ho anche provato ad assegnare il nome della cartella ad una variabile
(%NomeCartella%) ma la variabile mi assume come valore la stringa nuda e cruda:
Set Nomecartella=CartellAppoggio\*.*
il valore della variabile diventa "CartellAppoggio\*.*" e non il nome "Pippo"

==== Ecco cosa sto cercando di fare:
>>> Questo quanto riguarda il mio problema in batch, e con il quale sto
>>> cercando di realizzare un programmino che quando inserisco dei CD,
>>> ognuno contenente la sua cartella di nome Pippo o Pluto o Minni
>>> mi vada a verificare se gi presente nella cartella C:\Archivio.
>>> Se NON presente deve copiarlo
>>> Se invece c', deve saltare la copiatura e dare un messaggio del tipo:
>>> "Cartella gi presente in archivio"

Spero di essere stato sufficentemente chiaro.

:dh: Chi pu aiutarmi ???? :afraid:

Grazie da subito a tutti !!!!

FaberF
11-03-2011, 07:26
:dh: :dh: :dh:

Salve a tutti

Riformulo la domanda gi fatta in modo poco chiaro:

Ho alcuni dischi CD dello stesso genere e con una CARTELLA che lo stesso nome del proprietario del file.

Sul computer ho un indirizzo ( C:\Archivio\ ) nel quale va copiata la cartella solo se non c' gi (non va sovrascritta)
Inoltre non posso interrompere la procedura con la funzione di attesa del copy "... Sovrascrivere [s] [n]

:afraid:
DOMANDA: Come posso dire al batch di verificare se la cartella "Pippo" o Minni"
(il nome sempre differente) che si trova sul CD gi presente in C:\Archivio\ ??



Sto provando da diverso tempo ma non riseco a venirne fuori (if exist ..... if EQU ... if NEQ... )

Spero proprio che ualcuno sappia darmi qualche indicazione.

Grazie a tutti !!!!

deleted_29
11-03-2011, 09:07
non ho capito un granch, vuoi fare in sintesi una sorta di "backup"?
In questo caso puoi usare direttamente robocopy o xxcopy (quest'ultimo se vuoi "divertirti"), senza fare alcun batch

lolide
11-03-2011, 09:58
Prova a fare

mkdir percorso

e poi controlla la variabile d'ambiente %ERRORLEVEL%
Se 0 vuol dire che la cartella non esiste, e l'ha creata: in questo caso, cancellala o gestisci tu nel modo migliore.

Altrimenti %ERRORLEVEL% 1, e la cartella esiste gia.

Loading