平台:Windows 7、Windows XP 软件:DOS
我知道命令行长度限制,但我从未经历过这样的事情”。 我有 doskey 命令将参数/参数传递给 vbs 脚本,并且我确定如果我尝试传递包含超过 6 个空格的空格的字符串 - 第 6 个空格以外的所有内容都会被截断。这是已知的限制吗??
这是 doskey 的样子:
set scripts=C:\Windows\Scripts\
doskey tt=@echo off $t cscript //NoLogo %scripts%tt.vbs %scripts% $1 $2 $t @echo on
现在您可以打开批处理并通过输入简单的字符串来测试它:
tt + "1 2 3 4 5 6 7 8 9"
结果将是:
1 2 3 4 5 6
长度无关紧要,我可以用任何其他字符串测试它,它会在第 6 个空格后被截断。
有人知道或知道解决方案吗?
最佳答案
我实际上没有任何解释,但有一个解决方法:
使用单引号:doskey 似乎不考虑双引号(或者更可能被 cmd 解析),因此它使用空格将值拆分为 args。
我认为第 6 个空间限制来自 doskey 停在 9 个参数 (%1-%9) 并且您达到了限制。 您的 6 个数字、+ 号、%scripts% args 和脚本本身构成 9
关于windows - 如果字符串超过 6 个空格,则将其作为参数从 bat 传递时会被截断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6637146/