natasha
05-10-2004, 20:27
Buongiorno a tutti,
ho elaborato il seguente script ASP per cambiare una stringa di testo in tutti i file con una determinata estensione che stanno in una cartella:
<%
'nome autore, data
'
'SCOPO DELLO SCRIPT: sostituisce una stringa di testo "TESTO_DA_SOSTITUIRE"
'con una stringa di testo "NUOVO_TESTO" in tutti i file con estensione
'"ESTENSIONE_FILE" presenti nella cartella "PERCORSO_CARTELLA"
'
'Testato su Windows XP Pro SP2/IIS 5.0 e Windows 2000 Pro SP4/IIS 5.1
'
'PARAMETRI:
'- PERCORSO_CARTELLA: percorso della cartella in cui si trovano
' i file da sostituire. Può essere un percorso locale
' o di rete
'- ESTENSIONE_FILE: estensione dei file in cui effettuare la sostituzione
' Deve essere nella forma ".xxx"
'- TESTO_DA_SOSTITUIRE: testo che si vuole sostituire
'- NUOVO_TESTO: nuovo testo che sostituisce TESTO_DA_SOSTITUIRE
'
'LIMITAZIONI DELLO SCRIPT:
'- non effettua il cambiamento delle stringhe di testo ricorsivo,
' ovvero nelle sottocartelle della cartella indicata
'- i parametri sono "cablati nel codice" e non inseriti correttamente in variabili
' all'inizio del codice stesso. Perdonatemi ma sono un pigro etc. etc.
'
'CONSIDERAZIONE AGGIUNTIVA:
'se avete provato ad installare il .NET Framework 2.0 o Visual Studio 2005 Beta, anche la
'sola versione gratuita Web Developer, con ogni probabilità le pagine ASP non vi funzioneranno
'più. Con un pò di santa pazienza e ricerca su Google (NON nella documentazione Microsoft)
'troverete che potete agire sugli Application Mappings di IIS, sui filtri ISAPI,
'su aspnet_regiis.exe (prima su quello nella cartella C:\WINNT\Microsoft.NET\Framework\v2.0.40607,
'poi su quello nella cartella C:\WINNT\Microsoft.NET\Framework\v1.1.4322) con lo switch -i, ed in ultima
'analisi provare http://www.denisbauer.com/NETTools/...nSwitcher.aspx, che NON è stato
'testato su tutte le possibili combinazioni Windows/IIS. Buona fortuna
'
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set fold = fso.GetFolder("PERCORSO_CARTELLA")
'funziona sia nella forma locale, C:\pippo\pluto\...,
'che in quella remota \\computer_remoto\nome_cartella
for each file in fold.Files
if(Right(file.Name, 4)="ESTENSIONE_FILE") then
'sostituire "ESTENSIONE_FILE" con un'estensione a piacere nella forma ".xxx"
Set txtread = fso.OpenTextFile(file.Path, 1, false)
content = txtread.ReadAll()
Set txtread = Nothing
content = Replace(content, "TESTO_DA_SOSTITUIRE", "NUOVO_TESTO")
Set txtwrite = fso.CreateTextFile(file.Path, true)
txtwrite.Write(content)
Set txtwrite = Nothing
end if
next
Set fold = Nothing
Set fso = Nothing
%>
Tutto bene, ma lo script ha un piccolo difetto: se voglio cambiare la stringa di testo etc. etc. in file contenuti nelle sottocartelle che stanno nelle sottocartelle che stanno nelle sottocartelle... della cartella?
Kisses,
Nat
ho elaborato il seguente script ASP per cambiare una stringa di testo in tutti i file con una determinata estensione che stanno in una cartella:
<%
'nome autore, data
'
'SCOPO DELLO SCRIPT: sostituisce una stringa di testo "TESTO_DA_SOSTITUIRE"
'con una stringa di testo "NUOVO_TESTO" in tutti i file con estensione
'"ESTENSIONE_FILE" presenti nella cartella "PERCORSO_CARTELLA"
'
'Testato su Windows XP Pro SP2/IIS 5.0 e Windows 2000 Pro SP4/IIS 5.1
'
'PARAMETRI:
'- PERCORSO_CARTELLA: percorso della cartella in cui si trovano
' i file da sostituire. Può essere un percorso locale
' o di rete
'- ESTENSIONE_FILE: estensione dei file in cui effettuare la sostituzione
' Deve essere nella forma ".xxx"
'- TESTO_DA_SOSTITUIRE: testo che si vuole sostituire
'- NUOVO_TESTO: nuovo testo che sostituisce TESTO_DA_SOSTITUIRE
'
'LIMITAZIONI DELLO SCRIPT:
'- non effettua il cambiamento delle stringhe di testo ricorsivo,
' ovvero nelle sottocartelle della cartella indicata
'- i parametri sono "cablati nel codice" e non inseriti correttamente in variabili
' all'inizio del codice stesso. Perdonatemi ma sono un pigro etc. etc.
'
'CONSIDERAZIONE AGGIUNTIVA:
'se avete provato ad installare il .NET Framework 2.0 o Visual Studio 2005 Beta, anche la
'sola versione gratuita Web Developer, con ogni probabilità le pagine ASP non vi funzioneranno
'più. Con un pò di santa pazienza e ricerca su Google (NON nella documentazione Microsoft)
'troverete che potete agire sugli Application Mappings di IIS, sui filtri ISAPI,
'su aspnet_regiis.exe (prima su quello nella cartella C:\WINNT\Microsoft.NET\Framework\v2.0.40607,
'poi su quello nella cartella C:\WINNT\Microsoft.NET\Framework\v1.1.4322) con lo switch -i, ed in ultima
'analisi provare http://www.denisbauer.com/NETTools/...nSwitcher.aspx, che NON è stato
'testato su tutte le possibili combinazioni Windows/IIS. Buona fortuna
'
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set fold = fso.GetFolder("PERCORSO_CARTELLA")
'funziona sia nella forma locale, C:\pippo\pluto\...,
'che in quella remota \\computer_remoto\nome_cartella
for each file in fold.Files
if(Right(file.Name, 4)="ESTENSIONE_FILE") then
'sostituire "ESTENSIONE_FILE" con un'estensione a piacere nella forma ".xxx"
Set txtread = fso.OpenTextFile(file.Path, 1, false)
content = txtread.ReadAll()
Set txtread = Nothing
content = Replace(content, "TESTO_DA_SOSTITUIRE", "NUOVO_TESTO")
Set txtwrite = fso.CreateTextFile(file.Path, true)
txtwrite.Write(content)
Set txtwrite = Nothing
end if
next
Set fold = Nothing
Set fso = Nothing
%>
Tutto bene, ma lo script ha un piccolo difetto: se voglio cambiare la stringa di testo etc. etc. in file contenuti nelle sottocartelle che stanno nelle sottocartelle che stanno nelle sottocartelle... della cartella?
Kisses,
Nat