【问题标题】:Replacing string inside a file with VBS And batching用VBS和批处理替换文件中的字符串
【发布时间】: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


【解决方案1】:

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

【讨论】:

  • 这取决于您是否使用:SET PATH ="C:\Envfile\%STATION%\Envfile.env"SET PATH="C:\Envfile\%STATION%\Envfile.env" 来设置 PATH 变量。如果您覆盖了 SYSTEM PATH 变量,那么是的,这就是您找不到 cscript 的问题。但是你也必须意识到 %path %%path% 是不一样的。
  • 您应该提供解决方案的详细信息;请记住,SO 可以帮助人们找到编程问题的解决方案;如果有人遇到同样的问题,来到这个帖子,他会很失望,你不觉得吗?
猜你喜欢
  • 1970-01-01
  • 2011-02-15
  • 1970-01-01
  • 2014-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-13
相关资源
最近更新 更多