Newsgroup: it.comp.lang.visual-basic
Titolo: Rinominare i file di unacartella

Ciao a tutti,
come al solito debbo fare una domanda vergognandomi della mia ignoranza.
Dovrei fare un VBS che rinomini tutti i file .txt contenuti in una
determinata cartella;
vorrei cioe' che tutti quei file txt cambiassero estensione in .html.
Cioe' ottenere lo stesso risultato che si ottiene  con questo comando batch:
                        rename  C:\Pippo\*.txt   *.html
 Ho provato a usare il carattere Jolly in un VBS ma non riesco a farlo.
 Se qualcuno mi insegna come si fa gliene saro' molto grato.
 Saluti a tutti
                              Sergio

Sergio wrote:
: Ciao a tutti,

Puoi utilizzare il FileSystemObject della libreria Scripting, ciclare
l'insieme Files e rinominarli (istruzione Name) uno ad uno a tuo piacimento.
Ciao, Luca.

oggi non ho proprio nulla da fare..yawn :-)
Dim fso As New FileSystemObject, fldr As Folder, f As File
Set fldr = fso.GetFolder("c:\pippo")
  For Each f In fldr.Files
    If Right(f.Name, 4) = ".txt" Then f.Name = Replace(f.Name, ".txt",
".html")
  Next f
Set fso = Nothing
Set fldr = Nothing
Set f = Nothing
Ciao, Luca.

 wrote in message
TRfVe.59930$HM1.1...@twister1.libero.it...

   Grazie Luca,
   spero che tu continui a non aver niente da fare perche' ho ancora bisogno
del tuo aiuto....
   Ho copiato il tuo listato in Notepad,l'ho salvato e rinominato con
estensione VBS;
   quando l'ho eseguito mi ha  dato il messaggio di errore seguente:
          Riga 2
          Carattere  9
          Errore: Prevista fine istruzione
          Codice:   800A0401
   e naturalmente non ha funzionato.
   Ora avrai capito che sono proprio terra a terra in questo campo e se non
mi dai una mano
   non so a che santo votarmi.
   Quindi abbi pazienza e  vedi se puoi aiutarmi.
   Grazie ancora e cordiali saluti
                     Sergio

 ha scritto nel messaggio
news:AsiVe.43929$O6.24...@news3.tin.it...

Forse Luca non aveva capito bene che stai lavorando in VBScript, che è un po'
diverso dal VB6.
In pratica le correzioni da apportare sono queste:
1) Le istruzioni Dim non richiedono di specificare il tipo (in VBScript esistono
solo i variant)
Dim fso, fldr, f
2) Per creare un oggetto non si usa New ma CreateObject:
set fso = CreateObject("Scripting.FileSystemObject")
3) Il For Each... Next non vuole la variabile del loop (in questo caso f)
esplicitata dopo l'istruzione Next.
Bye
Raf

 Set f = Nothing
E se per caso un file si chiama "123.txt.a.9.txt"?
Ecco una versione rivista e corretta (vbs):
------------------------------------------------------------
Dim fso, fldr, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set fldr = fso.GetFolder("c:\pippo")
For Each f In fldr.Files
   If UCase(Right(f.Name, 4)) = ".TXT" Then
      f.Name = Left(f.Name, Len(f.Name) - 4) & ".html"
   End If
Next
Set fso = Nothing
Set fldr = Nothing
Set f = Nothing
------------------------------------------------------------
hth,
Lokar
-- 
Sito Comune: 
http://www.it-lang-vb.net/
Manifesto: 
http://www.it-lang-vb.net/docs/Manifesto.txt
Statuto: 
http://www.it-lang-vb.net/docs/Statuto.txt
UGIdotNET - 
http://www.ugidotnet.org

 ha scritto nel messaggio

Grazie Raf.. :-)
ormai sono NET dipendente..
Ciao, Luca.

Lokar wrote:
:: Dim fso As New FileSystemObject, fldr As Folder, f As File
:: Set fldr = fso.GetFolder("c:\pippo")
::  For Each f In fldr.Files
::    If Right(f.Name, 4) = ".txt" Then f.Name = Replace(f.Name, ".txt",
:: ".html")
::  Next f
:: Set fso = Nothing
:: Set fldr = Nothing
:: Set f = Nothing
:
: E se per caso un file si chiama "123.txt.a.9.txt"?
eh..cosa devo dirti..ci vuole sfiga..e un po' di stupiditą..
Ciao, Luca.

"Sergio"
per VBS (wsh) ti conviene rivolgerti altrove :
news:microsoft.public.it.scripting
(poco trafficato)
meglio in inglese qui :
news:microsoft.public.scripting.vbscript
news:microsoft.public.scripting.wsh
Questo sotto e' l'help del WSH con numerosi esempi ( sopra il mega)
http://www.microsoft.com/downloads/details.aspx?FamilyId=01592C48-207D-4BE1-8A76-1C4099D7BBB9&displaylang=en
http://download.microsoft.com/download/winscript56/Install/5.6/W982KMeXP/EN-US/scrdoc56en.exe
(tuttosuunarigasenononfungecopiaincollaunpezzopervolta)
Basics
http://www.windowsitpro.com/Articles/Index.cfm?ArticleID=16355&DisplayTab=Article
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/vtoriVBScriptFundamentals.asp
http://www.microsoft.com/technet/scriptcenter/learnit.mspx
http://www.jsware.net/jsware/scripts.html
   ( BUONO con samples completi )
http://www.w3schools.com/
InIzio wsh ( samples)
http://people.freenet.de/gborn/WSHBazaar/WSH1.htm
http://www.winscripter.com/WSH/default.aspx
http://www.robvanderwoude.com/robnav.html
Windows VBScript Utilities » 
www.billsway.com/vbspage/
Windows Tweaks & Tips » 
www.billsway.com/notes_public/
T Lavedas' WSH Scripts
 
http://www.pressroom.com/~tglbatch/wshindex.html
http://people.freenet.de/gborn/WSHBazaar/WSHBazaar.htm
ADVANCED
http://www.mvps.org/scripting/rube/
Forums
http://www.visualbasicscript.com/tt.aspx?forumid=2
http://www.winscripter.com/Forums/WSH/default.aspx
http://uphold2001.brinkster.net/vbshf/forum/forums/forum-view.asp?fid=34
http://www.scriptinganswers.com/Community/DiscussionForums/tabid/154/Default.aspx
CLR SCRIPT ("script" per modo di dire .. tutta altra cosa)
http://www.clrsoftware.com/clrscript/
AutoItX
http://www.hiddensoft.com/AutoIt/
AutoItX solo dll
http://www.hiddensoft.com/cgi-bin/countdown.pl?AutoIt/AutoItX.zip
negli esempi cambia "Untitled - Notepad" in "Senza nome - Blocco note"
e "Calculator" in "Calcolatrice"
http://directory.google.com/alpha/Top/Computers/Software/Operating_Systems/Microsoft_Windows/
Programming/Windows_Script_Host/
alll vario
http://keithdevens.com/programming
--
Fosco

L'indirizzo del website del T Lavedas è cambiato a
http://my.fcc.net/~tglbatch/wshindex.html
Tom Lavedas
===========


 eh..cosa devo dirti..ci vuole sfiga..e un po' di stupiditą..
La prima ce l'ho (vedi nick ;-) ), la seconda la incontro spesso, purtroppo
anche quando mi guardo allo specchio. Tanto che proprio l'altro ieri, per
rimanere in tema, ho dovuto cambiare un (idiotissimo, lo ammetto)
        if instr(nomefile, estensione) then
con un
        if right$(nomefile, len(estensione)) = estensione then
Il punto č che avevo detto ad un tipo che doveva mandarmi dei file
di farli con estensione .jpg, lui aveva le estensioni nascoste, e quindi,
come prevedibile, i file mi sono arrivati come NomeFoto.jpg.jpg :-/
Bye, G.

Paperino wrote:
cut
: l'altro ieri, per rimanere in tema, ho dovuto cambiare un
:         (idiotissimo, lo ammetto) if instr(nomefile, estensione) then
: con un
:         if right$(nomefile, len(estensione)) = estensione then
:
: Il punto č che avevo detto ad un tipo che doveva mandarmi dei file
: di farli con estensione .jpg, lui aveva le estensioni nascoste, e
: quindi, come prevedibile, i file mi sono arrivati come
: NomeFoto.jpg.jpg :-/
ih ih!
immagino tu l'abbia ringraziato con una mail con allegato
BritneyNude.jpg.exe :-)
Ciao, Luca.

 BritneyNude.jpg.exe :-)
La tentazione c'era, ma la realtŕ č che la colpa era mia :-(
Bye, G.