我正在嘗試使用VBS構建批處理文件,該文件將替換文件中的某些字符串。它的工作,但問題是我想使站變量指示在目錄上,因爲該文件存在於某些文件夾中。使用VBS替換文件中的字符串並批處理
這裏是我做過什麼:
的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或其他東西。 – Squashman