Accedi per seguire   
Seguaci 0
lanboy

Script Batch / Vbs Per Rinominare Un File

9 messaggi in questa discussione

ciao a tutti..

ho bisogno di una dritta per risolvere un problemuzzo:

ho un file di testo che viene generato automaticamente ad intervalli regolari che devo rinominare in nomefile1.txt - nomefile2.txt etc.... o nomefile+data_ora.txt

il nome di partenza del file generato è sempre uguale ma il contenuto è diverso quindi il nome del file deve avere una parte numerica progressiva oppure la data di sistema ( per differenziare i vari files).

la cosa deve essere poi automatizzata e schedulata con possibilita di richiamo da un file batch (che ho gia) per l'invio ad un server ftp

grazie per l'aiuto

saluti

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Ciao e Ben arrivato/a nel forum, ...lanboy

Ti invito a personalizzare la tua presenza in WinInizio aggiungendo una firma e un'avatar al tuo profilo personale;

se non sai come fare clicca qui

Se vuoi presentarti alla comunità perchè non fai un salto in "Benvenuto", la discussione creata proprio per accogliere i nuovi iscritti. (Naturalmente non sei obbligato a farlo :P )

Ricordati, infine, di aprire nuove discussioni usando titoli specifici: un titolo troppo generico come "Aiuto" o "Consiglio" è inutile perchè non permette di capire subito la tua richiesta e rende più difficili le ricerche per gli altri utenti.

Buona permanenza in WinInizio! :P

:)

Continua a seguirci: se qualcuno può aiutarti lo farà al più presto! :up1:

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
ciao a tutti..

ho bisogno di una dritta per risolvere un problemuzzo:

ho un file di testo che viene generato automaticamente ad intervalli regolari che devo rinominare in nomefile1.txt - nomefile2.txt etc.... o nomefile+data_ora.txt

il nome di partenza del file generato è sempre uguale ma il contenuto è diverso quindi il nome del file deve avere una parte numerica progressiva oppure la data di sistema ( per differenziare i vari files).

la cosa deve essere poi automatizzata e schedulata con possibilita di richiamo da un file batch (che ho gia) per l'invio ad un server ftp

grazie per l'aiuto

saluti

Ricapitoliamo.

Tu hai un'applicazione che ogni tanto genera un file che ha sempre lo stesso nome. Vuoi creare un'altra applicazione che ad intervalli regolari (?) ogni volta che viene generato quel file (?) ne modifichi il nome in un qualcosa di progressivo (ad esempio con un numero o con la data/ora del momento).

Giusto?

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Ricapitoliamo.

Tu hai un'applicazione che ogni tanto genera un file che ha sempre lo stesso nome. Vuoi creare un'altra applicazione che ad intervalli regolari (?) ogni volta che viene generato quel file (?) ne modifichi il nome in un qualcosa di progressivo (ad esempio con un numero o con la data/ora del momento).

Giusto?

esatto.....o meglio il file deve avere una parte del nome sempre uguale ed una parte con numero progressivo....ed file01.txt - file02.txt - file03.txt...oppure file070407.txt - file080407.txt - file 090407.txt...oppure file070407_1400.txt - file070407_1430.txt - file080407_1630.txt

insomma deve rinominare aggiungendo un numero progressivo o la data_ora di quanto lancio lo script.

l'ideale sarebbe in file .bat che esegue le istruzioni e che quindi posso schedulare con le operazioni pianificate di winxp e che puo anche chiamare l'altro script per fare l'invio ftp

tipo...

@echo off

if exist file.txt goto rename

in not exist goto exit

:rename

script che rinomina

call sendftp.bat

:exit

exit

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Vabbe'... se c'è da aggiungere solo la parte di "script che rinomina" basta che nel file batch aggiungi: ren nomefileorigine nomefiledestinatario

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
Vabbe'... se c'è da aggiungere solo la parte di "script che rinomina" basta che nel file batch aggiungi: ren nomefileorigine nomefiledestinatario

....li ci arrivo anche da solo....il problema è far si che nomefiledestinatario sia nomefiledestinatario080407 - nomefiledestinatario090407 oppure nomefiledestinatario1 - nomefledestinatario2

:):P

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

....li ci arrivo anche da solo....il problema è far si che nomefiledestinatario sia nomefiledestinatario080407 - nomefiledestinatario090407 oppure nomefiledestinatario1 - nomefledestinatario2

:):P

Sinceramente non penso sia possibile fare con la programmazione batch quello che vorresti fare tu... anche perchè bisogna intercettare il messaggio di sistema che avviene ogni volta che la tua applicazione crea il file da rinominare...

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Sinceramente non penso sia possibile fare con la programmazione batch quello che vorresti fare tu... anche perchè bisogna intercettare il messaggio di sistema che avviene ogni volta che la tua applicazione crea il file da rinominare...

beh...non è indispensabile che sia un file batch..o richiamabile da un file batch

potrebbe essere qualsiasi altro script .....dato che la mia appl genera il file ad orari prestabiliti posso schedulare sia lo script che rinomina che il batch che trasmette..

le 4 righe batch che ho scritto erano solo come esempio ma se c'e modo di farlo anche con altri sistemi..ben venga

:):P

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

beh...non è indispensabile che sia un file batch..o richiamabile da un file batch

potrebbe essere qualsiasi altro script .....dato che la mia appl genera il file ad orari prestabiliti posso schedulare sia lo script che rinomina che il batch che trasmette..

le 4 righe batch che ho scritto erano solo come esempio ma se c'e modo di farlo anche con altri sistemi..ben venga

:):P

Premesso che secondo me ti converrenbbe modificare la tua applicazione in modo che ogni volta generi un file dal nome univoco (inserendo magari la data e l'ora di sistema corrente).

Di seguito trovi uno script vbs che recupera l'ora di sistema corrente e rinomina un particolare file aggiungendo l'ora nel nome:

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_LocalTime")
For Each objItem in colItems
Wscript.Echo "renaming in corso..."
Set colFiles = objWMIService.ExecQuery _
	("SELECT * FROM Cim_Datafile WHERE Name = " _
	& "'c:\\cartella\\file_da_rinominare.estensione")
For Each objFile in colFiles
	errResult = objFile.Rename("c:\\cartella\\file_rinominato" & objItem.Year & objItem.Month & objItem.Day & objItem.Hour & objItem.Minute & objItem.Second & ".estensione")
	Wscript.Echo errResult
Next
Next

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Crea un account o accedi per lasciare un commento

Devi essere un utente registrato per partecipare

Crea un account

Iscriviti per un nuovo account nella nostra community. È facile!


Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.


Accedi Ora
Accedi per seguire   
Seguaci 0