Si vous ne voulez rien installer (je suppose que vous voulez ajouter le script dans une solution/programme/etc qui sera exécuté dans d'autres machines), vous pourriez essayer de créer un vbs script (disons, replace.vbs) :
Const ForReading = 1
Const ForWriting = 2
strFileName = Wscript.Arguments(0)
strOldText = Wscript.Arguments(1)
strNewText = Wscript.Arguments(2)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(strFileName, ForReading)
strText = objFile.ReadAll
objFile.Close
strNewText = Replace(strText, strOldText, strNewText)
Set objFile = objFSO.OpenTextFile(strFileName, ForWriting)
objFile.Write strNewText
objFile.Close
Et tu l'exécutes comme ça :
cscript replace.vbs "C:\One.txt" "Robert" "Rob"
Ce qui est similaire à la version sed fournie par "bill weaver", mais je pense que celle-ci est plus conviviale en termes de caractères spéciaux (' > < / ).
En fait, ce n'est pas moi qui l'ai écrit, mais je ne me rappelle pas où je l'ai trouvé.
1 votes
Que voulez-vous dire par "natif" ? ?? Installable pour fonctionner dans cmd.exe, ou pour fonctionner sans aucune installation ? Dans le premier cas, voir GnuWin32 référencé ci-dessous ; dans le second, non. Pas de sed natif pré-installé pour Windows.
9 votes
Par natif, j'entends une solution qui fonctionne sur tous les Windows sans installation supplémentaire.
2 votes
Laissez cmd.exe de côté et utilisez PowerShell à la place.
0 votes
En rapport : stackoverflow.com/questions/60034/
0 votes
Si vous voulez juste supprimer certaines lignes d'un fichier, utilisez FIND / ?
0 votes
Si vous voulez simplement rechercher et remplacer du texte dans une chaîne de caractères ou une variable en CMD, vous pouvez simplement effectuer les opérations suivantes
%var:old=new%
. Voir ss64.com/nt/syntaxe-remplacement.html pour plus d'informations.