12
votes

Comment remplacer le texte dans le fichier texte à l'aide du script de fichier BAT?

Donc, je souhaite créer un script qui prend 3 arguments: chemin vers le fichier, mot exact à remplacer et avec quoi le remplacer. Comment créer une telle chose?

Généralement, je veux que cela ait une API comme ceci: xxx


0 commentaires

3 Réponses :


3
votes

une recherche rapide Google trouvé ceci:

http://www.dosteps.com/?t=batch.findandreplace


0 commentaires

7
votes

J'ai écrit quelque chose comme 2 scripts par lots dans ma vie, mais voici comment prendre l'entrée de la ligne de commande:

for /f "tokens=1,* delims=]" %%A in ('"type %1|find /n /v """') do (
set "line=%%B"
if defined line (
    call set "line=echo.%%line:%~2=%~3%%"
    for /f "delims=" %%X in ('"echo."%%line%%""') do %%~X
    ) ELSE echo.
)


0 commentaires

7
votes

Utilisez FNR STROND> Utilitaire, c'est mieux que d'autres utilités célèbres car il peut rechercher et remplacer en fonction des expressions régulières. Aussi pour les amoureux de l'interface utilisateur, vous pouvez configurer des options dans UI et peut générer une chaîne de ligne de commande qui peut ensuite être utilisée dans votre script. Très facile à utiliser, même comme ligne de commande Stirng.

Trouvez ici http://findandreplace.codeplex.com/ a> p>

aussi il est un seul exe sans dépendances, si facile à utiliser. p>

Exemple: P>

fnr --cl --dir "" --fileMask "hibernate.*" --useRegEx 
      --find "find_str_expression" --replace "replace_string"


2 commentaires

La déclaration "C'est un exe unique sans aucune dépendance" est fausse. FNR est une application .NET et nécessite donc au moins une version spécifique .NET sur la machine cliente. Source: FINDAREDREPLACER.CODEPLEX.COM/SOURCONTROL/LATEST


Un paramètre vide --Dir n'est pas accepté par la version actuelle (1.7). Donner au répertoire de travail actuel fera le travail cependant: --Dir% CD% CD