Command line 可以用作参数的文本长度是否有限制?如果是,限额是多少?

Command line 可以用作参数的文本长度是否有限制?如果是,限额是多少?,command-line,vbscript,command-line-arguments,Command Line,Vbscript,Command Line Arguments,我有一个VBScript,它从命令行接受5个参数作为参数。5个参数中的两个包含指向某个.txt文件的完整绝对路径,因此命令行参数长度可能太长,在这种情况下,我的自动化脚本可能会失败 有人能告诉我在VBScript命令行中传递的文本长度是否有任何限制吗? 实际上,我想知道,从VB脚本的角度来看,是否有限制? 我正在按如下方式运行脚本: cscript.exe Sample.vbs "C:\Program Files\z.txt" param2 param3 D:\abcd.txt param5

我有一个VBScript,它从命令行接受5个参数作为参数。5个参数中的两个包含指向某个.txt文件的完整绝对路径,因此命令行参数长度可能太长,在这种情况下,我的自动化脚本可能会失败

有人能告诉我在VBScript命令行中传递的文本长度是否有任何限制吗?
实际上,我想知道,从VB脚本的角度来看,是否有限制?

我正在按如下方式运行脚本:

cscript.exe Sample.vbs "C:\Program Files\z.txt" param2 param3 D:\abcd.txt param5
我发现:

但你最好的办法是自己测试一下。尝试用一个非常长的字符串调用它,然后在vb脚本中输出字符串,或者输出字符串的长度。我认为您不会遇到文件路径长度的问题

a.vbs

Dim objShell
Set objShell = Wscript.CreateObject("WScript.Shell")

Dim arguments
For i = 1 To 6540
  arguments = arguments & LPad(i,4,"0") & ","
Next

objShell.Run "b.vbs " & arguments

' Using Set is mandatory
Set objShell = Nothing


Function LPad(s, l, c)
  Dim n : n = 0
  If l > Len(s) Then n = l - Len(s)
  LPad = String(n, c) & s
End Function
WriteString "C:\temp\vbscripttest\c.txt",WScript.Arguments.Item(0) 

Function WriteString( filename, contents )
    Set objFileToWrite = CreateObject("Scripting.FileSystemObject").OpenTextFile( filename,2,true)
    objFileToWrite.WriteLine(contents)
    objFileToWrite.Close
    Set objFileToWrite = Nothing
End Function
b.vbs

Dim objShell
Set objShell = Wscript.CreateObject("WScript.Shell")

Dim arguments
For i = 1 To 6540
  arguments = arguments & LPad(i,4,"0") & ","
Next

objShell.Run "b.vbs " & arguments

' Using Set is mandatory
Set objShell = Nothing


Function LPad(s, l, c)
  Dim n : n = 0
  If l > Len(s) Then n = l - Len(s)
  LPad = String(n, c) & s
End Function
WriteString "C:\temp\vbscripttest\c.txt",WScript.Arguments.Item(0) 

Function WriteString( filename, contents )
    Set objFileToWrite = CreateObject("Scripting.FileSystemObject").OpenTextFile( filename,2,true)
    objFileToWrite.WriteLine(contents)
    objFileToWrite.Close
    Set objFileToWrite = Nothing
End Function
它的最大值为6540*5个字符=32700。如果你想的话,你可以多玩玩。如果我输入6541,我得到:


Windows脚本主机 脚本:C:\temp\vbscripttest\a.vbs 第9行 字符:1 错误:文件名或扩展名太长。 代码:800700CE 来源:(空)



我已经修改了我的问题。。实际上,我想知道,从VB脚本的角度来看,是否有限制?回答(和评论)中概述的其他问题的限制也适用于VBScript。抱歉,没有额外的VBScript特定限制。我不知道是否有。。多谢大家。。Derek的回答指定了“Script:C:\temp\vbscripttest\a.vbs行:9 Char:1错误:文件名或扩展名太长。代码:800700CE Source:(null)”帮助我解决了问题…实际上,我想知道,如果从VB脚本的角度来看有限制?但是您可能希望调整测试以完全按照您将要调用的方式执行脚本。e、 g.cscript.exe Sample.vbs onereally longstringherethank很多Derek。。“Script:C:\temp\vbscripttest\a.vbs行:9 Char:1错误:文件名或扩展名太长。代码:800700CE Source:(null)”帮助我解决了问题。。再次非常感谢。。