Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di natasha
    Registrato dal
    Sep 2000
    Messaggi
    1,307

    Modificare uno script ASP per cambiare stringhe di testo in cartelle

    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

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    E' un bagno di sangue.
    Posso suggerirti questo.
    Fai un form nel quale inserisci a mano il percorso di ricerca/sostituzione per ogni cartella/sottocartella.
    Recuperi il valore proveniente dal form e lo inserisci nel tuo scirpt che così non modificherai se non limitatamente per accettare il valore del percorso.

    E' la soluzione più veloce.

    Roby

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.