Je suis en train d'écrire un fichier de commandes de script à l'aide de Windows environnement de ligne de commande et que vous souhaitez modifier chaque occurrence de texte dans un fichier (ex. "FOO") à un autre (ex. "BAR"). Quelle est la façon la plus simple de le faire? Toutes les fonctions intégrées?
Réponses
Trop de publicités?Un grand nombre de réponses ici a aidé à me diriger dans la bonne direction, cependant, aucun n'a été approprié pour moi, alors je vous poste ma solution.
J'ai Windows 7, qui est livré avec PowerShell. Voici le script que j'ai utilisé pour trouver/remplacer toutes les occurrences de texte dans un fichier:
powershell -Command "(gc myFile.txt) -replace 'foo', 'bar' | Out-File myFile.txt"
Pour l'expliquer:
-
powershell
démarre powershell.exe qui est inclus dans Windows 7 -
-Command "... "
est une ligne de commande arg pour powershell.exe contenant la commande à exécuter -
(gc myFile.txt)
lit le contenu demyFile.txt
(gc
"est l'abréviation de l'Get-Content
de la commande) -
-replace 'foo', 'bar'
fonctionne tout simplement la commande remplacer pour remplacerfoo
avecbar
-
| Out-File myFile.txt
tuyaux de sortie pour le fichiermyFile.txt
Powershell.exe devrait faire partie de votre instruction de CHEMIN d'accès déjà, mais si pas, vous pouvez l'ajouter. L'emplacement de celui-ci sur ma machine est - C:\WINDOWS\system32\WindowsPowerShell\v1.0
Si vous êtes sur une version de Windows qui prend en charge .Net 2.0, je voudrais remplacer votre coque. PowerShell vous donne le plein pouvoir de .Net à partir de la ligne de commande. Il y a beaucoup de commandlets construit en. L'exemple ci-dessous permettra de résoudre votre question. Je suis en utilisant le nom complet des commandes, il y a plus court alias, mais cela vous donne quelque chose à Google pour.
(Get-Content test.txt) | ForEach-Object { $_ -replace "foo", "bar" } | Set-Content test2.txt
Juste utilisé PÉTER ("F ind Un nd R eplace T ext" utilitaire de ligne de commande):
excellent petit logiciel gratuit pour le remplacement de texte dans un grand nombre de fichiers.
Les fichiers d'installation sont ici.
fart.exe -p -r -c -- C:\tools\perl-5.8.9\* @@APP_DIR@@ C:\tools
prévisualiser les remplacements récursive de le faire dans les fichiers de cette distribution Perl.
Seul problème: la PÉTER icône de ce site web n'est pas exactement le bon goût, raffiné, ni élégant ;)
Remplacer - Remplacer une sous-chaîne à l'aide de la chaîne de substitution Description: Pour remplacer une sous-chaîne par une autre chaîne utilisation de la chaîne fonctionnalité de substitution. L'exemple illustré ici, remplace toutes les occurrences de "teh" fautes d'orthographe " avec "la" dans la variable chaîne de caractères str.
set str=teh cat in teh hat
echo.%str%
set str=%str:teh=the%
echo.%str%
Sortie Du Script:
teh cat in teh hat
the cat in the hat
ref: http://www.dostips.com/DtTipsStringManipulation.php#Snippets.Replace
BatchSubstitute.bat
sur dostips.com est un exemple de la recherche et de remplacement à l'aide d'un pur fichier de commandes.
Il utilise une combinaison de FOR
, FIND
et CALL SET
.
Les lignes contenant des caractères parmi "&<>]|^
peut être traitée de manière incorrecte.