簡體   English   中英

cmd.exe命令行字符串限制

[英]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文件(取決於平台)。

  1. SUBST(已經提出)
  2. 使用8.3表示法(例如,C:\\ Progra〜1 \\-也已提出)
  3. 使用以下語法(如果在Windows中運行命令提示符):復制\\?\\ c:\\ verylongpath \\ verylongname \\?\\ d:\\ anotherverylongpath \\

除非使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM