2013-03-09 17 views
1

首次在這裏發佈。我正在編寫一個DOS批處理腳本來自動化歸檔Oracle表的過程。歸檔工具需要一個帶有需要在運行時填充的標籤的參數文件。我正在使用以下邏輯,嘗試2種不同的方法來捕獲錯誤,但是當重定向到錯誤的路徑時,錯誤不會被捕獲。是否有替代ECHO的方法,或者是檢測此寫入錯誤的替代方法?還是其他想法?非常感謝!
-Greg如何檢測ECHO輸出重定向到不良路徑時的錯誤?

@ECHO OFF 
FOR /F %%G IN (O:\tmp\infile.txt) DO (
    ... 
    ... 
    ECHO TABLE=%%G > P:\BADPATH\MYOUTFILE1.TXT 
    IF %ERRORLEVEL% NEQ 0 GOTO END 
    ... 
    ECHO TABLE=%%G > P:\BADPATH\MYOUTFILE2.TXT 
    IF ERRORLEVEL 1 GOTO END 
    ... 
    ... 
) 

:END 
IF %ERRORLEVEL% NEQ 0 ECHO FAILED! 
ECHO EXITING 
+0

看看這個問題:http://stackoverflow.com/questions/10354016/file-redirection-in-windows-and-errorlevel – wmz 2013-03-09 21:31:11

+0

你好wmz,非常感謝你的回覆。這是一個有趣的帖子。我需要一些時間來消化和測試它。 – user2151990 2013-03-10 12:53:55

回答

0

不知道如果我理解正確的,但它聽起來像是你想檢查文件/文件夾第一存在。如果是這樣的話:

IF EXIST P:\BADPATH\ goto notexist else goto exist 
:notexist 
echo Doesn't exist. 
:exist 
echo It exists! 

或者使用standard()標籤來包含代碼。

+0

你好。非常感謝格倫的快速回應。這是一個很好的建議 - 我不知道EXIST。但我不明白爲什麼ERRORLEVEL適用於其他命令,但不適用於ECHO。 – user2151990 2013-03-09 18:28:45

+0

我不確定那個。沒有使用errorlevel很多,我通常只是預先檢查可能的錯誤,並採取相應的行動。讓我知道它是否有效。 – Glenn 2013-03-09 18:32:16

相關問題