Shell MSAccess VBA外壳命令-最大长度?

Shell MSAccess VBA外壳命令-最大长度?,shell,ms-access,command-line,Shell,Ms Access,Command Line,今天下午我一直在胡思乱想。从Access VBA开始,我通过shell发出命令行,使用cURL.exe将文件FTP到第三方服务器 在我将代码带到生产环境之前,一切都很顺利,现在代码在生产环境中悄无声息地失败了。我怀疑产生“strCmd”的多个不可预测的文件路径太长,无法通过命令shell。>>有限制吗?根据这个链接,最大值远远大于200:@Wayne-谢谢你的链接。嗯,与在命令shell中使用长字符串相比,我自己的研究并没有得出任何结论……或者,至少在我的情况下是这样的。通过shell命令从批处

今天下午我一直在胡思乱想。从Access VBA开始,我通过shell发出命令行,使用cURL.exe将文件FTP到第三方服务器


在我将代码带到生产环境之前,一切都很顺利,现在代码在生产环境中悄无声息地失败了。我怀疑产生“strCmd”的多个不可预测的文件路径太长,无法通过命令shell。>>有限制吗?根据这个链接,最大值远远大于200:@Wayne-谢谢你的链接。嗯,与在命令shell中使用长字符串相比,我自己的研究并没有得出任何结论……或者,至少在我的情况下是这样的。通过shell命令从批处理文件运行长命令行似乎很好。这可能是我的解决方法,尽管不是很好,因为这会迫使我在用户机器上创建(然后杀死)一个文件。GRRDI您确定限值是否在250到256之间吗?也许是年纪大了,但似乎很久以前,总有一些地方有256字节的限制,有时如果接口标记了自己的一些控制字符,限制就会减少。我做了几次搜索,但没有找到少于2000个字符的相关信息。使用TinyURL怎么样?根据重定向在哪里起作用,“可能”解决了这个问题。我没有实验来确定触发器的精确长度。我想我可能会弄乱文件名来得到这个数字。但问题仍然存在。根据这个链接,最大值比200大得多:@Wayne-谢谢链接。嗯,与在命令shell中使用长字符串相比,我自己的研究并没有得出任何结论……或者,至少在我的情况下是这样的。通过shell命令从批处理文件运行长命令行似乎很好。这可能是我的解决方法,尽管不是很好,因为这会迫使我在用户机器上创建(然后杀死)一个文件。GRRDI您确定限值是否在250到256之间吗?也许是年纪大了,但似乎很久以前,总有一些地方有256字节的限制,有时如果接口标记了自己的一些控制字符,限制就会减少。我做了几次搜索,但没有找到少于2000个字符的相关信息。使用TinyURL怎么样?根据重定向在哪里起作用,“可能”解决了这个问题。我没有实验来确定触发器的精确长度。我想我可能会弄乱文件名来得到这个数字。但问题依然存在。
curl -k -T testfile.txt --ftp-ssl --ftp-pasv -u "username\$domain:password" ftp://ftp-domain.egnyte.com/Shared/testdirectory/
Function fShellRun(sCommandStringToExecute)

Dim oShellObject, oFileSystemObject, sShellRndTmpFile
Dim oShellOutputFileToRead, iErr

Set oShellObject = CreateObject("Wscript.Shell")
Set oFileSystemObject = CreateObject("Scripting.FileSystemObject")

sShellRndTmpFile = oShellObject.ExpandEnvironmentStrings("%temp%") & oFileSystemObject.GetTempName
On Error Resume Next
oShellObject.Run sCommandStringToExecute & " > " & sShellRndTmpFile, 0, True
iErr = Err.Number

'~on error goto 0
If iErr <> 0 Then
    fShellRun = ""
    Exit Function
End If

'~on error goto err_skip
fShellRun = oFileSystemObject.OpenTextFile(sShellRndTmpFile, 1).ReadAll
oFileSystemObject.DeleteFile sShellRndTmpFile, True

Exit Function

err_skip:
fShellRun = ""
oFileSystemObject.DeleteFile sShellRndTmpFile, True

End Function