C'è un modo per sostituire alcuni caratteri in un file di testo con un file batch?Sostituzione di caratteri in un file di testo con un file batch
Non ho trovato alcun comando per farlo.
C'è un modo per sostituire alcuni caratteri in un file di testo con un file batch?Sostituzione di caratteri in un file di testo con un file batch
Non ho trovato alcun comando per farlo.
La risposta più immediata è "No, non con finestre utilità di base"
Ma, come le altre risposte hanno suggerito, ci sono un sacco di porte Unix là fuori che fare quello che vuoi. Prendi a gnuwin32 packages.
EDIT:
Va bene, rivedere la mia rigorosa "No". Potrebbe esserci un modo per farlo, a seconda della complessità del tuo compito e del tuo sistema operativo. Quando si utilizza Windows 2000 e versioni successive, cmd fornisce estensioni di comando che è possibile utilizzare.
L'idea di base è utilizzare un ciclo FOR per scorrere ciascuna riga di un file di input e quindi utilizzare la sostituzione di stringa fornita dal comando SET per sostituire i caratteri.
Non ho alcuna soluzione a portata di mano, ma si potrebbe provare da soli, utilizzando un'infrazione dal sito piuttosto bello. Guarda here per la sintassi del ciclo FOR e here per la sostituzione delle stringhe.
+1 per gnuwin32. –
Il problema di base con l'iterazione del file è che quando contiene caratteri speciali come '&', '|' o '>' diventa disordinato. Getta un numero dispari di virgolette in una riga e tutte le scommesse sono disattivate. Non ho trovato un modo per sfuggire correttamente tali caratteri quando ci sono numeri dispari di virgolette in una riga. Altrimenti è facile ma disordinato. – Joey
Oh, solo un'altra cosa: 'for' salta le righe vuote. Se hai bisogno del file per sopravvivere, compresi quelli che devi cercare altre soluzioni. – Joey
È possibile cercare un programma da riga di comando come GREP che è possibile chiamare da un batch che prenderà una stringa di sostituzione e un file e farà lo scambio per conto dell'utente.
È possibile utilizzare la porta DOS dell'utilità della riga di comando Unix "tr".
Una porta DOS libera può essere found here, uno di quelli che mi piace (ce ne sono molti diversi) sono "UXUTL - Raccolta completa di utilità Unix a riga di comando per DOS".
Il vantaggio è che si ottiene un sacco di comandi incredibilmente utili, non solo tr.
è possibile installare UnxUtils e poi fare
sed "s/WORD_FROM/WORD_TO/" file_name > changed.file.name
per cambiare le parole o
cat file|tr "a" "b" > changed.file.name
per cambiare caratteri
Usa sed o niente:
sed -i 's/FROM/TO/g' filename.txt
sed può essere scaricato here, per varie piattaforme.
È necessario utilizzare WIN32 SED e vedere la pagina ufficiale di gnu sed per la spiegazione. E 'davvero potente:
> sed "s/WORD_FROM/WORD_TO/" file_name > changed.file.name
Anche se questa domanda è abbastanza vecchio, lettore futuro può essere interessati a sapere che se si vuole un piccolo exe senza dipendenze solo per la sostituzione del testo mi consiglia di utilizzare FART.
puoi dare un esempio di cosa vuoi sostituire (prima e dopo)? – akf
Volevo semplicemente sostituire in un file di testo tutte le occorrenze di "<" con un carattere vuoto. –