用VBS替换文件中的字符串并进行批处理

时间:2015-10-23 16:48:15

标签: bash file batch-file replace vbscript

我正在尝试使用VBS构建批处理文件,该文件将替换文件中的某些字符串。它的工作但问题是我想让站变量在dir上指示,因为文件存在于某些文件夹中。

这就是我所做的:

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  'WriteLine adds extra CR/LF
objFile.Close

这是运行批处理代码:

    :input
@echo off
CLS
ECHO   #############################################
ECHO   #                                           #
ECHO   #  1 - AM                                   #
ECHO   #  2 - PM                                   #
Echo   #  3 - Exit                                 #
ECHO   #                                           #
ECHO   #############################################


SET O=""
SET STATION =""
SET /P STATION=Set Your STATION number:
SET PATH ="C:\Envfile\%STATION%\Envfile.env"
SET /P O=Set Your Choice And Press Enter:
ECHO Loading .........
IF %O%==1 GOTO AM
IF %O%==2 GOTO PM
IF %O%==3 GOTO Exit
IF %O%=="" GOTO input
goto done

:AM

    cscript replace.vbs %PATH% "PM" "AM"
goto done

:PM

    cscript replace.vbs %PATH% "AM" "PM"
goto done


ELSE 
GOTO input

你可以看到用户传递了"站号var"在代码的开头,我想让它在位于以站号命名的文件夹中的Envfile.env文件上结束(例如:1123)。

由于某种原因,它无法正常工作。

帮助?

1 个答案:

答案 0 :(得分:0)

解决了这个问题,显然vbscript编译器的路径已从计算机的环境路径中删除。