[英]cmd.exe command line string limits
我一直在尝试从oracle查询中后台处理bat文件,该文件会将内容从一个位置复制到另一个位置,
现在,要生成的命令的长度大于255个字符,例如
C:> copy x y ( where len (x+y) > 255)
由于这会引发错误,是否可以解决这种情况以增加命令长度?
PS一些路径和文件名的长度大于259个字符,对此我发现说的很少
您可以使用subst使用驱动器号来命名您工作的两个子目录。 显然,它们不是真实的,而是逻辑驱动器,但是您可以大大缩短路径。
LASTDRIVE=Z
SUBST S: c:\this is a very long path name\source
SUBST T: d:\this is a very long path name\Target
#do whatever you need to, like
copy s:\filename T:\filename
SUBST S: /D
SUBST T: /D
/ D参数释放关联。
您可能要考虑使用DBMS_FILE_TRANSFER.COPY_FILE而不是创建bat文件。 您可以完全避免使用bat文件(取决于平台)。
除非使用Win95 / 98 / ME,否则请尝试使用.cmd文件而不是.bat文件。 这样可以解决整个问题。
如果这样做没有效果,则可以通过在命令行之前使用cmd-escape char ^来换行或将命令包装在括号中来中断命令。
我不这么认为; 我可能会将其写入文件。
可能不是,听起来您正在达到MAX_PATH
限制。 请参阅MSDN上的文件名,路径和命名空间 。
可能的解决方法可能是使用短路径等效项,例如C:\\Progra~1
。
根据以下文章命令提示符(Cmd。exe)命令行字符串限制 ,
在运行Microsoft Windows XP或更高版本的计算机上,可以在命令提示符下使用的字符串的最大长度是8191个字符。 在运行Microsoft Windows 2000或Windows NT 4.0的计算机上,可以在命令提示符下使用的字符串的最大长度为2047个字符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.