probar este
If WScript.Arguments.Count <> 3 then
WScript.Echo "usage: Find_And_replace.vbs filename word_to_find replace_with "
WScript.Quit
end If
FindAndReplace WScript.Arguments.Item(0), WScript.Arguments.Item(1), WScript.Arguments.Item(2)
WScript.Echo "Operation Complete"
function FindAndReplace(strFilename, strFind, strReplace)
Set inputFile = CreateObject("Scripting.FileSystemObject").OpenTextFile(strFilename, 1)
strInputFile = inputFile.ReadAll
inputFile.Close
Set inputFile = Nothing
Set outputFile = CreateObject("Scripting.FileSystemObject").OpenTextFile(strFilename,2,true)
outputFile.Write Replace(strInputFile, strFind, strReplace)
outputFile.Close
Set outputFile = Nothing
end function
Guardar esto en un archivo llamado Find_And_Replace.vbs, que luego se puede utilizar en la línea de comando como este.
[C:\]> Find_And_Replace.vbs "C:\1.txt" "temporary" "permanent"
* Este método es sensible a mayúsculas "Este"! = "Este"
Si no desea leer el archivo en la memoria, se puede utilizar un archivo temporal como este.
If WScript.Arguments.Count <> 3 then
WScript.Echo "usage: Find_And_replace.vbs filename word_to_find replace_with "
WScript.Quit
end If
FindAndReplace WScript.Arguments.Item(0), WScript.Arguments.Item(1), WScript.Arguments.Item(2)
WScript.Echo "Operation Complete"
function FindAndReplace(strFile, strFind, strReplace)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objInputFile = objFSO.OpenTextFile(strFile,1)
strTempDir = objFSO.GetSpecialFolder(2)
Set objTempFile = objFSO.OpenTextFile(strTempDir & "\temp.txt",2,true)
do until objInputFile.AtEndOfStream
objTempFile.WriteLine(Replace(objInputFile.ReadLine, strFind, strReplace))
loop
objInputFile.Close
Set objInputFile = Nothing
objTempFile.Close
Set objTempFile = Nothing
objFSO.DeleteFile strFile, true
objFSO.MoveFile strTempDir & "\temp.txt", strFile
Set objFSO = Nothing
end function
Es costumbre agradecer al usuario que proporciona la respuesta correcta , marcando su respuesta como la respuesta aceptada. – Tester101
He probado el script usando un archivo con la extensión .config que contiene el texto de ejemplo que proporcionó en su comentario, y no tuve ningún problema. No estoy seguro de cómo está usando el script, pero en el caso de "" cuando escribe el comando en la línea de comando, no incluya el "" simplemente escriba Find_And_Replace.vbs "C: \ 1.txt" "temporary" "permanente". NO Find_And_Replace.vbs "C: \ 1.txt" "" temporal "" "permanente". – Tester101
También puede intentar cambiar la primera línea en la función FindAndReplace "Establecer inputFile = CreateObject (" Scripting.FileSystemObject "). OpenTextFile (strFilename, 1)" Con esto "Establecer inputFile = CreateObject (" Scripting.FileSystemObject "). OpenTextFile (strFilename, 1, verdadero, 0) ". Si eso no funciona intente cambiar esta línea "outputFile.Write Replace (strInputFile, strFind, strReplace)" Con este "outputFile.Write Replace (strInputFile, strFind, strReplace, 1, -1,1)" – Tester101