【问题标题】:Use command-line arguments in VBS [duplicate]在 VBS 中使用命令行参数 [重复]
【发布时间】:2015-08-17 23:43:13
【问题描述】:

我正在使用以下 VBS 脚本从文件中删除第一个 n 行数:

strInputFile = "*Filename.txt"

Set objFSO = CreateObject("Scripting.FileSystemObject")
Const intForReading = 1
Set objInputFile = objFSO.OpenTextFile(strInputFile, intForReading, False)
If Not objInputFile.AtEndOfStream Then
      objInputFile.SkipLine
Else
      WScript.Quit
End If
strContents = ""
While Not objInputFile.AtEndOfStream
      If strContents = "" Then
            strContents = objInputFile.ReadLine
      Else
            strContents = strContents & VbCrLf & objInputFile.ReadLine
      End If
Wend
objInputFile.Close
Set objInputFile = Nothing

Set objOutputFile = objFSO.CreateTextFile(strInputFile, True)
objOutputFile.Write strContents
objOutputFile.Close
Set objOutputFile = Nothing
Set objFSO = Nothing

如何更改代码,以便当我通过 CMD 启动程序时,它不是一个常量输入文件,而是一个参数?

【问题讨论】:

    标签: batch-file vbscript cmd


    【解决方案1】:

    改变

    strInputFile = "*filename.txt" 
    

    strInputFile = WScript.Arguments(0)
    

    第一个参数是文件名。

    【讨论】:

      【解决方案2】:

      查看 wscript.arguments,它提供了对用于启动脚本的命令行的访问。

      if (wscript.arguments.count <> 1) then
          wscript.echo "Usage: dl2unc <drive-letter-path>"
          wscript.quit 1
      end if
      
      s = wscript.arguments.Item(0)
      

      【讨论】:

      • 那行得通。谢谢!
      • @user3063297 - 如果这对您有用,请将其标记为答案。谢谢。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-15
      • 1970-01-01
      相关资源
      最近更新 更多