Discussione:
Spostamento file, HOW TO
(troppo vecchio per rispondere)
u***@gmail.com
2007-05-08 12:53:53 UTC
Permalink
Salve a tutti,
sto cercando di creare un file .bat che copi i file da una dir a un'
altra, potendo filtrare in base al loro nome e alla loro dimensione..
Tutto mi sembrava semplice ma imbattendomi nella shell CL di dos non
sono andato oltre a uno stupido:

xcopy /y [dest] [origile] | find "stringa" (che mi filtra giustamente
solo l'output a shcermo :D )

E nessuna idea su come filtrare in base alla dimensione :\

Grazie per eventuali risposte

Ur
gioacchino
2007-05-08 22:40:47 UTC
Permalink
Post by u***@gmail.com
Salve a tutti,
sto cercando di creare un file .bat che copi i file da una dir a un'
altra, potendo filtrare in base al loro nome e alla loro dimensione..
Tutto mi sembrava semplice ma imbattendomi nella shell CL di dos non
xcopy /y [dest] [origile] | find "stringa" (che mi filtra giustamente
solo l'output a shcermo :D )
E nessuna idea su come filtrare in base alla dimensione :\
Grazie per eventuali risposte
Ur
ci vorrebbe un bel script dos e nemmeno troppo semplice
forse potresti utilizzare la sintassi con il for e copiarlo uno per volta,
controllando prima la sua dimensione

es:
for %%k in (nome_dei_file) do mioprog dir_origine dir_destinazione %%k

dove mioprog è un programma generato che controlla se il nome del file è
della "giusta" dimensione

puoi essere più specifico quando parli di dimensione? Vuoi copiare i file
sopra una certa dimensione, sotto una certa dimensione o tra due
dimensioni?
u***@gmail.com
2007-05-09 06:47:26 UTC
Permalink
Post by gioacchino
puoi essere più specifico quando parli di dimensione? Vuoi copiare i file
sopra una certa dimensione, sotto una certa dimensione o tra due
dimensioni?
Con
xcopy ecc ecc /EXCLUDE
sono riuscito a filtrare in base al nome dei file..
Ora ho in una cartella i file che mi interessano, vorrei filtrare
solamente quelli > di una certa dimensione in quanto alcuni sono vuoti
e sono solamente 2 byte..
gioacchino
2007-05-09 07:55:51 UTC
Permalink
Post by u***@gmail.com
Post by gioacchino
puoi essere più specifico quando parli di dimensione? Vuoi copiare i file
sopra una certa dimensione, sotto una certa dimensione o tra due
dimensioni?
Con
xcopy ecc ecc /EXCLUDE
sono riuscito a filtrare in base al nome dei file..
Ora ho in una cartella i file che mi interessano, vorrei filtrare
solamente quelli > di una certa dimensione in quanto alcuni sono vuoti
e sono solamente 2 byte..
La dimensione del file quando è eseguito il debug è nel registro dx:cx.
Si potrebbe fare un confronto tra il questi e un valore di sbarramento.
Ora purtroppo non ho tempo per farlo.
u***@gmail.com
2007-05-09 10:16:06 UTC
Permalink
Post by gioacchino
La dimensione del file quando è eseguito il debug è nel registro dx:cx.
Si potrebbe fare un confronto tra il questi e un valore di sbarramento.
Ora purtroppo non ho tempo per farlo.
Grazie per l'aiuto..
m.. non c''e altro modo di selezionare i file > di una certa
dimensione?
Dispongo anche di UnxUtils :D
gioacchino
2007-05-09 17:48:07 UTC
Permalink
Post by u***@gmail.com
Post by gioacchino
La dimensione del file quando è eseguito il debug è nel registro dx:cx.
Si potrebbe fare un confronto tra il questi e un valore di sbarramento.
Ora purtroppo non ho tempo per farlo.
Grazie per l'aiuto..
m.. non c''e altro modo di selezionare i file > di una certa
dimensione?
Dispongo anche di UnxUtils :D
quindi non ti interessa la portabilità con altri sistemi che potrebbero
non avere tali utility?

se è così la cosa cambia e si semplifica. Ma se è così potresti fare
un programmino in c per esempio che faccia una cosa del genere in
pseudocodice:

#define DIMENSIONE 100

h_filebat=fopen(filedacreare.bat,"w");
fwrite(h_filebat,"@echo off\n");
file=lista_dir(pattern)
while(file)
{
h_file=fopen(file)
fseek(h_file,0,SEEK_END)
dimensione=ftell(h_file)
fclose(h_file)
if (dimensione>100)
fwrite(h_filebat,"copy "+file+" destinazione\n");
file=lista_dir(pattern)
}
fclose(h_filebat);

a questo punto dopo averlo fatto funzionare lo chiami da un semplicissimo
bat così fatto:

mioprog.exe
if exist filedacreare.bat call filedacreare.bat

ciao
u***@gmail.com
2007-05-10 06:47:52 UTC
Permalink
Post by gioacchino
#define DIMENSIONE 100
h_filebat=fopen(filedacreare.bat,"w");
file=lista_dir(pattern)
while(file)
{
h_file=fopen(file)
fseek(h_file,0,SEEK_END)
dimensione=ftell(h_file)
fclose(h_file)
if (dimensione>100)
fwrite(h_filebat,"copy "+file+" destinazione\n");
file=lista_dir(pattern)}
fclose(h_filebat);
a questo punto dopo averlo fatto funzionare lo chiami da un semplicissimo
mioprog.exe
if exist filedacreare.bat call filedacreare.bat
ciao
Fatta :D
Grazie per l'aiuto..

Loading...