我一直在努力从oracle查询假冒bat文件,将内容从一个位置复制到另一个位置,
现在生成的命令的长度大于255个字符,例如
C:> copy x y ( where len (x+y) > 255)
由于这会引发错误,是否有办法管理这种情况以增加命令长度?
P.S。有些路径+文件名的长度大于259个字符,我发现有less to argue
答案 0 :(得分:4)
您可以使用 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参数释放关联。
答案 1 :(得分:1)
您可能需要考虑使用DBMS_FILE_TRANSFER.COPY_FILE而不是创建bat文件。您可以完全避免使用bat文件(与平台相关)。
答案 2 :(得分:1)
答案 3 :(得分:1)
尝试使用.cmd文件,而不是.bat文件,除非您使用的是Win95 / 98 / ME。这可以解决整个问题。
如果没有这样做,你可以通过在使用cmd-escape char ^的换行符之前或通过将命令包装在括号中来中断命令。
答案 4 :(得分:0)
我不这么认为;我可以把它写成文件。
答案 5 :(得分:0)
可能不会,听起来像是在达到MAX_PATH
限制。请参阅MSDN上的File Names, Paths, and Namespaces。
可能的解决方法可能是使用短路径等效项,例如C:\Progra~1
。
根据以下文章Command prompt (Cmd. exe) command-line string limitation,
在运行Microsoft Windows XP或更高版本的计算机上,您可以在命令提示符处使用的字符串的最大长度为8191个字符。在运行Microsoft Windows 2000或Windows NT 4.0的计算机上,您可以在命令提示符处使用的字符串的最大长度为2047个字符。