【发布时间】:2015-10-23 16:48:15
【问题描述】:
我正在尝试使用 VBS 构建一个批处理文件,它将替换文件中的某些字符串。它可以工作,但问题是我想让 station 变量在目录上指示,因为文件存在于某些文件夹中。
这就是我所做的:
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)。
由于某种原因它不起作用。
帮助?
【问题讨论】:
-
删除变量名和 SET 语句中等号之间的空格。我也不会使用 PATH 作为变量名。使用 tpath 什么的。
标签: bash file batch-file replace vbscript