【问题标题】:Is there a limit in the text length that you can use as a parameter? If yes whats the limit?可用作参数的文本长度是否有限制?如果是,限制是多少?
【发布时间】:2015-05-25 11:28:58
【问题描述】:

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

谁能告诉我我们是否对在命令行中为 VBScript 传递的文本长度有任何限制? 其实我想知道,从VB脚本的角度来看,有没有限制?

我运行脚本如下:

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

【问题讨论】:

  • 我已经修改了我的问题.. 实际上,我想知道,从 VB 脚本的角度来看是否有限制?
  • 另一个问题的答案(和 cmets)中概述的限制也适用于 VBScript。 AFAIK 没有额外的 VBScript 特定限制。
  • 我不知道是否有任何.. 谢谢大家.. Derek 的回答指定了“脚本:C:\temp\vbscripttest\a.vbs 行:9 字符:1 错误:文件名或扩展名太长。代码:800700CE 来源:(null)" 帮助我解决了我的问题...

标签: command-line vbscript command-line-arguments


【解决方案1】:

我发现了这个:http://blogs.msdn.com/b/oldnewthing/archive/2003/12/10/56028.aspx

但您最好自己测试一下。尝试用一个非常长的字符串调用它,然后在你的 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

b.vbs

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脚本的角度来看有没有限制?
  • 但是您可能想要调整测试以完全按照您要调用的方式执行脚本。例如cscript.exe Sample.vbs OneReallyLongStringHere
  • 非常感谢 Derek.. “脚本:C:\temp\vbscripttest\a.vbs 行:9 字符:1 错误:文件名或扩展名太长。代码:800700CE 来源:( null)" 帮助我解决了我的问题.. 再次非常感谢..
猜你喜欢
  • 1970-01-01
  • 2015-04-15
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多