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/A...Switcher.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