|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 81
|
[batch]Copiare File In Cartella E Nelle Sue Sottocartelle
Salve a tutti, sono nuovo del forum.
vorrei chiedere come da titolo come si può copiare un file in una directory e in tutte le sue sotto directory, usando il linguaggio MS-Dos. es. echo Ho il file in "F:\" echo Lo voglio copiare in "F:\dati" echo ma "F:\dati" contiene altre cartelle, molte e non ho voglia di scrivere tutti i percorsi per copiare il file in tutte le sue sottodirectory oltre che nella cartella "dati" Chiedo aiuto al più presto... Ho già provato con copy: copy "F:\orario.xls" "F:\dati\*" ....ma non funziona... con xcopy: xcopy /y /s "F:\orario.xls" "F:\dati" ...ma anche questo non funziona... Grazie in anticipo.... ...per favore se potete indicatemi gli sbagli che ho commesso se fosse possibile usare questi comandi... Ho trovato tra i comandi dos il comando tree che crea la lsita di tutte le subdir a partire da quella in cui mi trovo, ma poi non so come proseguire...devo creare un file esterno che mi elenchi tutte le subdir per poi farlo leggere dal mio programma??? Non c'è modo di non creare file esterni, ma di rimanere sempre e solo nel mio programma, magari dandogli alcune variabili anzichè creare il file??? PS:è piuttosto urgente.... Ultima modifica di skeleton : 20-07-2009 alle 14:22. Motivo: forse con tree |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Feb 2007
Città: Verona
Messaggi: 1060
|
Quote:
Tu hai un file in F: chiamato orario.xls e questo singolo file lo vuoi copiare in F:\dati e tutte le sue sottocartelle... Aparte la singolarità di una tale operazione, è corretto quello che ho scritto?
__________________
|
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 81
|
Correttissimo
![]() Risponderesti al mio quesito, per favore??? Comunque devo effettuare tale operazione per conto di mio padre che lavora in una grande azienda... Ultima modifica di skeleton : 20-07-2009 alle 15:45. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Feb 2007
Città: Verona
Messaggi: 1060
|
Mamma mia che brutta la programmazione batch
![]() Così dovrebbe andare: Codice:
@echo off SETLOCAL ENABLEEXTENSIONS SETLOCAL ENABLEDELAYEDEXPANSION F: cd \ for /r dati %%p in (.) do copy orario.xls "%%p" Codice:
for /? ![]() Ciao
__________________
|
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 81
|
Scusa se ti rompo ancora, ma cosa significa "%%p" e "in (.)"
Grazie per l'immediata risposta... |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Feb 2007
Città: Verona
Messaggi: 1060
|
Quote:
Quindi, %p è la variabile del for, che assume un valore diverso per ogni ciclo di for. Il punto nelle parentesi (.) significa che ti stai riferendo alla cartella specificata prima di "%%p". Dalla documentazione del for /r Codice:
Microsoft Windows XP [Versione 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\Documents and Settings\federico>for /?
Esegue il comando specificato per ogni file di un gruppo di file.
Per usare FOR in un programma batch, utilizzare la sintassi %%variabile
anziché %variabile. Le variabili possono essere differenziate utilizzando
lettere maiuscole e minuscole. Esempio: %i è diversa
da %I.
Se le estensioni ai comandi sono attivate è possibile utilizzare le seguenti
opzioni per il comando FOR:
FOR /R [[unità:]percorso] %variabile IN (gruppo) DO comando [parametri-comando]
Nella struttura della directory, a partire da [unità:]percorso, esegue
l'istruzione FOR in ogni directory della struttura. Se dopo /R non viene
specificato alcun percorso la directory corrente è assunta come iniziale.
Se per il parametro gruppo si usa solo un carattere punto (.)saranno
elencate le directory nella struttura della directory specificata.
Mi sono basato semplicemente su questo, facendo un paio di prove e verificando che funziona come dovrebbe.
__________________
|
|
|
|
|
|
|
#7 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 81
|
Grazie mille per la spiegazione, funziona perfettamente
!!!Ciao |
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Feb 2007
Città: Verona
Messaggi: 1060
|
Quote:
![]() Alla prossima
__________________
|
|
|
|
|
|
|
#9 |
|
Junior Member
Iscritto dal: May 2013
Messaggi: 1
|
Sono imbattuto in questo thread navigando tra la pagine di google alla ricerca disperata di una soluzione ad un mio problema (ahimè stupido ma non molto facile) ed in parte l'ho trovata seguendo questo ciclo di for
for /r dati %%p in (.) do copy orario.xls "%%p" Ma se volessi copiare il file non in tutte le subdir ma in in alcune ben determinate come dovrei modificarlo?? mi spiego meglio, ho una root dir che rappresenta il mese poi x subdir che rappresentano i giorni del mese e ogni subdir giorni mese ha la sua cartella downloads. io vorrei copiare il file orario.xls nella subdir download di ciascun giorno mese. Nella speranza di essermi spiegato chiaramente ringrazio i quanti vorranno darmi delle indicazioni |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:54.























