locked
Aggiungere punti e virgola alla fine di ogni record in file TXT RRS feed

  • Domanda

  • Ciao a tutti,
    come è possibile modificare un file di testo txt in modo da aggiungere un punto e virgola alla fine di ogni riga?

    Luigi

    martedì 31 luglio 2012 08:07

Risposte

  • Pigiando alacremente sui tastini, Ciupaz scrisse:

    come è possibile modificare un file di testo txt in modo da aggiungere
    un punto e virgola alla fine di ogni riga?

    for /f %1 in (nomefile.ext) do echo %1;


        Luca Amicone

    • Contrassegnato come risposta Ciupaz martedì 31 luglio 2012 12:53
    martedì 31 luglio 2012 10:35
  • Pigiando alacremente sui tastini, Ciupaz scrisse:

    for /f %1 in (c:\TestFile.txt) do echo %1;
    mi restituisce questo errore:

    Ma dove stai usandolo? Il mio è un comando puramente "Dos" da utilizzare nella schermata del "Prompt dei comandi"
    Una volta verificato che funzioni, puoi redirezionare l'output in un altro file di testo.
    Tipo:
    for /f %1 in (c:\TestFile.txt) do echo %1; >> C:\TestFile2.txt


        Luca Amicone

    • Contrassegnato come risposta Ciupaz martedì 31 luglio 2012 13:56
    martedì 31 luglio 2012 13:49

Tutte le risposte

  • La prima soluzione che mi viene in mente è uno script di PowerShell che apra il file, legga ogni riga, la modifichi nel modo in cui voluto dall'utente e salvi la modifica (oppure produca un nuovo file con la versione modificata).
    Il punto è che non credo che le cmdlet presenti in PowerShell permettano un'elaborazione così fina, ma la cosa potrebbe essere risolta sfruttando il fatto che le cmdlet possono essere scritte sfruttando l'integrazione con .NET e C#: l'articolo che trovi all'indirizzo http://stackoverflow.com/questions/4192072/how-to-process-a-file-in-powershell-line-by-line-as-a-stream potrebbe esserti utile in tal senso.

    Ciao.


    Luigi Bruno

    martedì 31 luglio 2012 09:13
  • Grazie Luigi, pensavo che la soluzione fosse un po' più semplice.
    Darò un'occhiata all'articolo che mi hai segnalato.

    L

    martedì 31 luglio 2012 09:34
  • Pigiando alacremente sui tastini, Ciupaz scrisse:

    come è possibile modificare un file di testo txt in modo da aggiungere
    un punto e virgola alla fine di ogni riga?

    for /f %1 in (nomefile.ext) do echo %1;


        Luca Amicone

    • Contrassegnato come risposta Ciupaz martedì 31 luglio 2012 12:53
    martedì 31 luglio 2012 10:35
  • Facendo:

    for /f %1 in (c:\TestFile.txt) do echo %1;

    mi restituisce questo errore:


    '(' di apertura mancante dopo la parola chiave 'for'.
    In riga:1 car:5
    + for  <<<< /f %1 in (c:\TestFile.txt) do echo %1;
        + CategoryInfo          : ParserError: (OpenParenToken:TokenId) [], Pare
        + FullyQualifiedErrorId : MissingOpenParenthesisAfterKeyword

     

     

     

    • Modificato Ciupaz martedì 31 luglio 2012 12:56
    martedì 31 luglio 2012 12:53
  • Pigiando alacremente sui tastini, Ciupaz scrisse:

    for /f %1 in (c:\TestFile.txt) do echo %1;
    mi restituisce questo errore:

    Ma dove stai usandolo? Il mio è un comando puramente "Dos" da utilizzare nella schermata del "Prompt dei comandi"
    Una volta verificato che funzioni, puoi redirezionare l'output in un altro file di testo.
    Tipo:
    for /f %1 in (c:\TestFile.txt) do echo %1; >> C:\TestFile2.txt


        Luca Amicone

    • Contrassegnato come risposta Ciupaz martedì 31 luglio 2012 13:56
    martedì 31 luglio 2012 13:49
  • Ah scusa, pensavo fosse un cmdlet da usare con PowerShell, e non dal prompt del DOS.

    Funziona perfettamente.

    Grazie ancora Luca.

    L

    martedì 31 luglio 2012 13:56
  • Aggiungo due note: se il file contiene degli spazi non funziona correttamente e l'ultimo post di Luca aggiunge due caratteri: ; e spazio 

    segue la linea che evita il due problemi

    :: da linea di comando
    for /f "tokens=*" %A in (C:\TestFile.txt) do (echo %A;) >> C:\TestFile1.txt
    ::

    Ciao Gas

    Gastone Canali >http://www.armadillo.it

    Se alcuni post rispondono al tuo quesito (non necessariamente i miei), ricorda di contrassegnarli come risposta e non dimenticare di contrassegnare anche i post utili . GRAZIE!

    martedì 31 luglio 2012 14:30
    Moderatore