Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 31
  1. #1
    Utente di HTML.it L'avatar di fred84
    Registrato dal
    Dec 2005
    Messaggi
    434

    operazione ripetitiva su una moltitudine di file

    ho una situazione del genere

    directory -> n sottodirectory -> ciascuna con un numero variabile di file di testo

    in ciascuno dei file di testo dovrei aggiungere una riga (sempre la stessa, sempre nella stessa posizione)

    c'è un modo per farlo in automatico?

    se necessario posso riavviare e passare ad Ubuntu.

    Grazie

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Con la powershell è un'operazione molto veloce. Se hai windows 7 è già integrata. In caso contrario la puoi scaricare gratuitamente.

    codice:
    gci "c:\tua_cartella" -rec | ? {$_.extension -eq ".txt"} | % {
    $file = get-Content $_.fullname
    set-content $_.fullname -value ($file[0..1]+ "TESTO DA AGGIUNGERE" + $file[2..($file.Length-1)])
    }
    Nel mio esempio ho aggiunto del testo nella terza riga di ciascun file.
    Per precauzione testa lo script su una copia di sicurezza.

  3. #3
    Utente di HTML.it L'avatar di fred84
    Registrato dal
    Dec 2005
    Messaggi
    434
    sì, ho win 7

    dove la trovo questa powershell?
    edit, trovata.

    di quel tuo codice devo solo cambiare la location della directory ed il testo che voglio aggiungere?
    (dovrei metterlo in quarta riga)

    e se decidessi di cambiare del testo oltre che ad aggiungerlo? (questo avrebbe struttura definita, ma posizione ignota)

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Programmi > accessori > windows powershell > windows powershell ise

    è l'editor già integrato da microsoft per lanciare gli script.

    Mi spieghi meglio che sostituzione di testo vuoi fare?

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da fred84
    di quel tuo codice devo solo cambiare la location della directory ed il testo che voglio aggiungere?
    (dovrei metterlo in quarta riga)
    Dovresti solo modificare il percorso della directory.
    Se vuoi metterlo nella quarta riga lo script diventa

    $file[0..2]+ "testo...." + $file[3..($file.Length-1....

  6. #6
    Utente di HTML.it L'avatar di fred84
    Registrato dal
    Dec 2005
    Messaggi
    434
    c'ho provato

    mi da una lista indegna di "cannot index in a null array"

    ah, ho copiato senza andare a capo
    ed ho messo gli stessi spazi che hai messo tu

  7. #7
    Utente di HTML.it L'avatar di fred84
    Registrato dal
    Dec 2005
    Messaggi
    434
    Originariamente inviato da nicola75ss
    Mi spieghi meglio che sostituzione di testo vuoi fare?
    "$nome.variabile = $numero a caso" -> "$nome.variabile = $numero fisso"

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Se nella parte alta dell'editor dove c'è scritto senzanome1.ps1 digiti

    gci "c:\tua_cartella" -rec | ? {$_.extension -eq ".txt"}

    e poi premi il triangolino verde ottieni l'elenco di tutti i file txt?

  9. #9
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    usa javascript o vbscript. Nn so se su Win7 esiste gia. Cmq i cmq sn Wscript e cscript.

    codice:
    var WSHShell = WScript.CreateObject("WScript.Shell");
    var FSO = new ActiveXObject("Scripting.FileSystemObject");
    
    function ModificaFile(filename){
          var fd;
    
          fd = FSO.OpenTextFile(filename, 8, false); // Append Mode
          fd.WriteLine("This is a test.");
          fd.Close();
    }
    
    function EnumFiles(cProgDir){
    	var f, fc;   
       	
    	if(FSO.FolderExists(cProgDir) == false)
    		return;
       	f = FSO.GetFolder(cProgDir);
       	fc = new Enumerator(f.SubFolders);
       	for (; !fc.atEnd(); fc.moveNext())
    		EnumFiles(fc.item());	
       	fc = new Enumerator(f.files);
       	for (; !fc.atEnd(); fc.moveNext())
    		ModificaFile(fc.item());
    }
    dovrebbe essere grosso modo cs.
    Per gli Spartani e Sparta usa spartan Il mio github

  10. #10
    Utente di HTML.it L'avatar di fred84
    Registrato dal
    Dec 2005
    Messaggi
    434
    Originariamente inviato da nicola75ss
    Se nella parte alta dell'editor dove c'è scritto senzanome1.ps1 digiti

    gci "c:\tua_cartella" -rec | ? {$_.extension -eq ".txt"}

    e poi premi il triangolino verde ottieni l'elenco di tutti i file txt?
    sì. se è utile, la prima colonna sono tutti -a---

    (triangolino verde? )

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.