Discussione:
creare file batch
(troppo vecchio per rispondere)
Tom
2008-03-07 19:22:36 UTC
Permalink
ciao a tutti,
vorrei creare un file batch che esegua delle funzioni di rinomina file e
spostamente dei file rinominati in altra directory.

Ora il mio problema è che la directory contenente i file da rinominare
cambia di giorno in giorno prendendo il nome della data di sistema quindi
oggi si chiamerà 20080307 e così via.
Posso creare un file batch che mi chieda il nome della directory prima di
fargli eseguire la funzione di rinomina e di spostamento ?
Oppure creare il batch in modo che prenda in automatico la directory in base
alla data odierna ?

Spero di essere stato chiaro
Grazie mille
errante
2008-03-07 20:04:14 UTC
Permalink
Post by Tom
vorrei creare un file batch che esegua delle funzioni di rinomina
file e spostamente dei file rinominati in altra directory.
Ora il mio problema è che la directory contenente i file da
rinominare cambia di giorno in giorno prendendo il nome della data
di sistema quindi oggi si chiamerà 20080307 e così via.
Posso creare un file batch che mi chieda il nome della directory
prima di fargli eseguire la funzione di rinomina e di spostamento
? Oppure creare il batch in modo che prenda in automatico la
directory in base alla data odierna ?
Il file batch, collocato nella dir a monte, potrebbe essere del tipo:
if /i %time:~0,2% GEQ 10 (
set fdata=%date:~6,4%%date:~3,2%%date:~0,2%
) else (
set fdata=%date:~6,4%%date:~3,2%%date:~0,2%
)
@ren %fdata%\*.txt *.bak
@copy %fdata%\*.bak \dir0\dir1\dir2\*.*
--
s. e. & o.
Ciao
Tom
2008-03-07 20:21:41 UTC
Permalink
Grazie mille, se hai tempo mi spieghi brevemente il significato dei comandi
?
Io sono proprio a livello principiante.
Il mio livello in pratica è:

imposto il percorso nel batch
poi
ren 0*.tif 2*.tif (per cambiare la prima cifra del file)
poi
copy *.* e do il percorso ...........

Che vergogna ...............
Al massimo copio e incollo il tuo e provo
Post by errante
Post by Tom
vorrei creare un file batch che esegua delle funzioni di rinomina
file e spostamente dei file rinominati in altra directory.
Ora il mio problema è che la directory contenente i file da
rinominare cambia di giorno in giorno prendendo il nome della data
di sistema quindi oggi si chiamerà 20080307 e così via.
Posso creare un file batch che mi chieda il nome della directory
prima di fargli eseguire la funzione di rinomina e di spostamento
? Oppure creare il batch in modo che prenda in automatico la
directory in base alla data odierna ?
if /i %time:~0,2% GEQ 10 (
set fdata=%date:~6,4%%date:~3,2%%date:~0,2%
) else (
set fdata=%date:~6,4%%date:~3,2%%date:~0,2%
)
@ren %fdata%\*.txt *.bak
@copy %fdata%\*.bak \dir0\dir1\dir2\*.*
--
s. e. & o.
Ciao
errante
2008-03-07 20:35:03 UTC
Permalink
Grazie mille...
Mi spiace che tu abbia risposto ad un mio messaggio errato e
sostituito. Vedi l'altra mia risposta...
Comunque, mi pare che tu non sia del tutto sprovveduto come dici :-)
--
s. e. & o.
Ciao
errante
2008-03-07 20:09:13 UTC
Permalink
Post by Tom
vorrei creare un file batch che esegua delle funzioni di rinomina
file e spostamente dei file rinominati in altra directory.
Ora il mio problema è che la directory contenente i file da
rinominare cambia di giorno in giorno prendendo il nome della data
di sistema quindi oggi si chiamerà 20080307 e così via.
Posso creare un file batch che mi chieda il nome della directory
prima di fargli eseguire la funzione di rinomina e di spostamento
? Oppure creare il batch in modo che prenda in automatico la
directory in base alla data odierna ?
Il file batch, collocato nella dir a monte, potrebbe essere del tipo:
set fdata=%date:~6,4%%date:~3,2%%date:~0,2%
@ren %fdata%\*.txt *.bak
@copy %fdata%\*.bak \dir0\dir1\dir2\*.*
--
s. e. & o.
Ciao
Tom
2008-03-07 21:19:22 UTC
Permalink
grazie ancora ma se non ti scoccia
cosa fa questo comando ? set fdata=%date:~6,4%%date:~3,2%%date:~0,2%
Post by errante
Post by Tom
vorrei creare un file batch che esegua delle funzioni di rinomina
file e spostamente dei file rinominati in altra directory.
Ora il mio problema è che la directory contenente i file da
rinominare cambia di giorno in giorno prendendo il nome della data
di sistema quindi oggi si chiamerà 20080307 e così via.
Posso creare un file batch che mi chieda il nome della directory
prima di fargli eseguire la funzione di rinomina e di spostamento
? Oppure creare il batch in modo che prenda in automatico la
directory in base alla data odierna ?
set fdata=%date:~6,4%%date:~3,2%%date:~0,2%
@ren %fdata%\*.txt *.bak
@copy %fdata%\*.bak \dir0\dir1\dir2\*.*
--
s. e. & o.
Ciao
errante
2008-03-07 22:21:17 UTC
Permalink
Post by Tom
grazie ancora ma se non ti scoccia
cosa fa questo comando ?
La riga di comando:
set fdata=%date:~6,4%%date:~3,2%%date:~0,2%
imposta una variabile 'fdata' ( o 'comevuoi') assegnadole la data di
sistema nel formato 20080307, ovvero:
%date:~6,4% = 2007 (anno)
%date:~3,2% = 03 (mese)
%date:~0,2% = 07 (giorno)
Post by Tom
set fdata=%date:~6,4%%date:~3,2%%date:~0,2%
echo %fdata%
e leggerai: >20080307 (data di oggi).
Post by Tom
Questo credo che rinomini ma non capisco bene .
@ren %fdata%\*.txt *.bak
Esattamente. Tu hai detto di avere sul pc, creata da una qualche
applicazione, una directory con nome uguale a %fdata%.
Post by Tom
dir %fdata% e vedrai il contenuto della directory.
La '@' prima di 'ren' (@ren) evita che il comando appaia a video
(similmente ad 'echo off')
Post by Tom
Questo copia ma ... come sopra
@copy %fdata%\*.bak \dir0\dir1\dir2\*.*
Infatti, copia; supponendo che l'applicazione crei la directory in
d:\archivi\20080307\, il file batch è in d:\archivi\.
Così puoi copiare i file nella dir d:\lavoro\doc\ecc\*.*.
Se è lo stesso disco, si può omettere 'd:' lasciando la prima '\'
che significa 'root' (directory radice).
--
s. e. & o.
Ciao
Tom
2008-03-07 22:27:57 UTC
Permalink
grazie mille troppo gentile
Post by errante
Post by Tom
grazie ancora ma se non ti scoccia
cosa fa questo comando ?
set fdata=%date:~6,4%%date:~3,2%%date:~0,2%
imposta una variabile 'fdata' ( o 'comevuoi') assegnadole la data di
%date:~6,4% = 2007 (anno)
%date:~3,2% = 03 (mese)
%date:~0,2% = 07 (giorno)
Post by Tom
set fdata=%date:~6,4%%date:~3,2%%date:~0,2%
echo %fdata%
e leggerai: >20080307 (data di oggi).
Post by Tom
Questo credo che rinomini ma non capisco bene .
@ren %fdata%\*.txt *.bak
Esattamente. Tu hai detto di avere sul pc, creata da una qualche
applicazione, una directory con nome uguale a %fdata%.
Post by Tom
dir %fdata% e vedrai il contenuto della directory.
(similmente ad 'echo off')
Post by Tom
Questo copia ma ... come sopra
@copy %fdata%\*.bak \dir0\dir1\dir2\*.*
Infatti, copia; supponendo che l'applicazione crei la directory in
d:\archivi\20080307\, il file batch è in d:\archivi\.
Così puoi copiare i file nella dir d:\lavoro\doc\ecc\*.*.
Se è lo stesso disco, si può omettere 'd:' lasciando la prima '\'
che significa 'root' (directory radice).
--
s. e. & o.
Ciao
Fosco
2008-03-08 05:52:57 UTC
Permalink
"Tom"
Post by Tom
Oppure creare il batch in modo che prenda in automatico la directory
in base alla data odierna ?
; http://www.autoitscript.com/autoit3/

; copia i file da c:\data odierna a c:\test


; inizio

MsgBox(262144, "", @YEAR&@MON&@MDAY)

FileCopy("c:\" & @YEAR&@MON&@MDAY &"\*","c:\test\",8 )

MsgBox(262144, "", "c:\" & @YEAR&@MON&@MDAY &"\*")

; fine


; //////////////////////////////////////// spiegazioni dall'help


FileCopy
------------------------------------------------------------

Copies one or more files.


FileCopy ( "source", "dest" [, flag] )


Parameters

source The source path of the file(s) to copy. Wildcards are supported.
dest The destination path of the copied file(s).
flag [optional] this flag determines whether to overwrite files if they already exist.
Can be a combination of the following:
0 = (default) do not overwrite existing files
1 = overwrite existing files
8 = Create destination directory structure if it doesn't exist (See Remarks).



Return Value

Success: Returns 1.
Failure: Returns 0.


Remarks

The destination directory must already exist, except using with flag value '8'.
For instance the combined flag '9' (1 + 8) overwrites the target file and pre-checks for the destination directory
structure and if it doesn't exist creates it automatically.

See FileFindFirstFile for a discussion of wildcards.

Some file attributes can make the overwriting impossible.

Related

FileMove, FileDelete, DirCopy
--
Fosco
Tom
2008-03-08 08:22:50 UTC
Permalink
Grazie Fosco ma non ci ho capito molto (colpa mia che sono un ignorantone)
Comunque io devo rinominare tutto il contenuto di c:\pippo\dataodierna
(quindi farei ren 0*.* 2*.* per cambiare la prima cifra dei file) e poi
copiare il risultato in c:\pluto\dataodierna.

Dopo provo la soluzione che mi ha dato Errante ma spiegami meglio, se hai
tempo e voglia, cosi provo anche AutoIT.

Grazie
Post by Tom
ciao a tutti,
vorrei creare un file batch che esegua delle funzioni di rinomina file e
spostamente dei file rinominati in altra directory.
Ora il mio problema è che la directory contenente i file da rinominare
cambia di giorno in giorno prendendo il nome della data di sistema quindi
oggi si chiamerà 20080307 e così via.
Posso creare un file batch che mi chieda il nome della directory prima di
fargli eseguire la funzione di rinomina e di spostamento ?
Oppure creare il batch in modo che prenda in automatico la directory in base
alla data odierna ?
Spero di essere stato chiaro
Grazie mille
Fosco
2008-03-08 15:36:27 UTC
Permalink
Post by Tom
Grazie Fosco ma non ci ho capito molto (colpa mia che sono un ignorantone)
Comunque io devo rinominare tutto il contenuto di c:\pippo\dataodierna
(quindi farei ren 0*.* 2*.* per cambiare la prima cifra dei file) e poi
copiare il risultato in c:\pluto\dataodierna.
Dopo provo la soluzione che mi ha dato Errante ma spiegami meglio, se hai
tempo e voglia, cosi provo anche AutoIT.
azz scusa mi ero perso la parte che li volevi pure rinominare
autoit ha una pessima gestione di questo

http://www.autoitscript.com/forum/index.php?showtopic=53789

PS :
http://www.noidelweb.it/ipod/migliori/quotare.htm
http://wiki.news.nic.it/QuotarBene
--
Fosco
Tom
2008-03-08 14:00:44 UTC
Permalink
Ciao Errante, non ci riesco proprio.
Io comunque tutto quello che devo fare è rinominare tutto il contenuto di
c:\pippo\dataodierna
(quindi farei ren 0*.* 2*.* per cambiare la prima cifra dei file) e poi
copiare il risultato in c:\pluto\dataodierna
Ora sto provando con AutoIt se ci capisco qualcosa ma dubito

Grazie ad entrambi
Post by Tom
ciao a tutti,
vorrei creare un file batch che esegua delle funzioni di rinomina file e
spostamente dei file rinominati in altra directory.
Ora il mio problema è che la directory contenente i file da rinominare
cambia di giorno in giorno prendendo il nome della data di sistema quindi
oggi si chiamerà 20080307 e così via.
Posso creare un file batch che mi chieda il nome della directory prima di
fargli eseguire la funzione di rinomina e di spostamento ?
Oppure creare il batch in modo che prenda in automatico la directory in base
alla data odierna ?
Spero di essere stato chiaro
Grazie mille
Tom
2008-03-08 14:38:52 UTC
Permalink
allora ho semi risolto così
@CD\
@CD PROVA\20080308
@REN 0*.* 2*.*
@COPY *.* C:\SOLUZIONE\20080308
@REN 2*.* 0*.* (per riportare i file sotto prova allo stato originale)
però ogni giorno dovrei cambiare la data manualmente, io vorrei che
cliccando sul file batch facesse tutte queste cose a seconda della data
quindi oggi la farebbe per 20080308 e domani per 20080309 in automatico.
Post by Tom
ciao a tutti,
vorrei creare un file batch che esegua delle funzioni di rinomina file e
spostamente dei file rinominati in altra directory.
Ora il mio problema è che la directory contenente i file da rinominare
cambia di giorno in giorno prendendo il nome della data di sistema quindi
oggi si chiamerà 20080307 e così via.
Posso creare un file batch che mi chieda il nome della directory prima di
fargli eseguire la funzione di rinomina e di spostamento ?
Oppure creare il batch in modo che prenda in automatico la directory in base
alla data odierna ?
Spero di essere stato chiaro
Grazie mille
Tom
2008-03-08 14:45:35 UTC
Permalink
ho risolto, incredibile grazie a voi
Allora

set fdata=%date:~6,4%%date:~3,2%%date:~0,2%
@CD\
@CD PROVA\%fdata%
@REN 0*.* 2*.*
@COPY *.* C:\SOLUZIONE\%fdata%
@REN 2*.* 0*.*
Post by Tom
ciao a tutti,
vorrei creare un file batch che esegua delle funzioni di rinomina file e
spostamente dei file rinominati in altra directory.
Ora il mio problema è che la directory contenente i file da rinominare
cambia di giorno in giorno prendendo il nome della data di sistema quindi
oggi si chiamerà 20080307 e così via.
Posso creare un file batch che mi chieda il nome della directory prima di
fargli eseguire la funzione di rinomina e di spostamento ?
Oppure creare il batch in modo che prenda in automatico la directory in base
alla data odierna ?
Spero di essere stato chiaro
Grazie mille
errante
2008-03-08 15:02:19 UTC
Permalink
ho risolto...
Yahoo!
set fdata=%date:~6,4%%date:~3,2%%date:~0,2%
@CD\
@CD PROVA\%fdata%
@REN 0*.* 2*.*
@COPY *.* C:\SOLUZIONE\%fdata%
@REN 2*.* 0*.*
E allora vedi se funziona con qualche riga in meno:
set fdata=%date:~6,4%%date:~3,2%%date:~0,2%
@COPY \PROVA\%fdata%\0*.* C:\SOLUZIONE\%fdata%\2*.*

Ma la dir '%fdata%' in C:\SOLUZIONE\ chi l'ha generata?
Eventualmente ci vuole, prima di @COPY \..., la riga:
@MD C:\SOLUZIONE\%fdata%
--
s. e. & o.
Ciao
Tom
2008-03-08 15:54:52 UTC
Permalink
si giusto !
Grazie ancora !
Post by Tom
ciao a tutti,
vorrei creare un file batch che esegua delle funzioni di rinomina file e
spostamente dei file rinominati in altra directory.
Ora il mio problema è che la directory contenente i file da rinominare
cambia di giorno in giorno prendendo il nome della data di sistema quindi
oggi si chiamerà 20080307 e così via.
Posso creare un file batch che mi chieda il nome della directory prima di
fargli eseguire la funzione di rinomina e di spostamento ?
Oppure creare il batch in modo che prenda in automatico la directory in base
alla data odierna ?
Spero di essere stato chiaro
Grazie mille
Tom
2008-03-08 16:01:39 UTC
Permalink
Ciao Errante,
se volessi fare la stessa cosa anche per la data di ieri ? Come la imposto ?
Post by Tom
ciao a tutti,
vorrei creare un file batch che esegua delle funzioni di rinomina file e
spostamente dei file rinominati in altra directory.
Ora il mio problema è che la directory contenente i file da rinominare
cambia di giorno in giorno prendendo il nome della data di sistema quindi
oggi si chiamerà 20080307 e così via.
Posso creare un file batch che mi chieda il nome della directory prima di
fargli eseguire la funzione di rinomina e di spostamento ?
Oppure creare il batch in modo che prenda in automatico la directory in base
alla data odierna ?
Spero di essere stato chiaro
Grazie mille
Tom
2008-03-08 17:36:41 UTC
Permalink
Risolto anche questa, ora la smetto di rompere.
Grazie ancora
(Ho usato il comando Set con abbinato /A)
Post by Tom
Ciao Errante,
se volessi fare la stessa cosa anche per la data di ieri ? Come la imposto ?
Post by Tom
ciao a tutti,
vorrei creare un file batch che esegua delle funzioni di rinomina file e
spostamente dei file rinominati in altra directory.
Ora il mio problema è che la directory contenente i file da rinominare
cambia di giorno in giorno prendendo il nome della data di sistema quindi
oggi si chiamerà 20080307 e così via.
Posso creare un file batch che mi chieda il nome della directory prima di
fargli eseguire la funzione di rinomina e di spostamento ?
Oppure creare il batch in modo che prenda in automatico la directory in
base
Post by Tom
alla data odierna ?
Spero di essere stato chiaro
Grazie mille
errante
2008-03-08 18:14:44 UTC
Permalink
Risolto anche questa...
(Ho usato il comando Set con abbinato /A)
Benissimo!

~~~
Volevo dirti che tu hai *sempre* risposto ai *tuoi* messaggi
e non ai messaggi cui si dovevano riferire.
In merito a "threading e "quoting" dài una letta alle pagine
che ti ha segnalato "Fosco" ed anche a:
http://wiki.news.nic.it/AiutoComposizione
--
s. e. & o.
Ciao
Continua a leggere su narkive:
Loading...