2016-10-24 61 views
0

我有一個名爲「isUp.o」的文本文件,其中包含連接結果錯誤,如「致命錯誤:網絡錯誤:連接超時」。 我只是想檢查和IP變量更改爲新的IP值,但我得到的西班牙語以下消息在Windows批處理中比較文件內容的錯誤

No se esperaba "FATAL ERROR: Network error: Connection timed out" en este momento. 
d:\> if [ "FATAL ERROR: Network error: Connection timed out" <> "" ] (

翻譯可能是:

Not waited "FATAL ERROR: Network error: Connection timed out" at this moment. 

我不知道在哪裏問題是。

for /f "delims=" %%j in (isUp.o) do (
set /p result=%%j 
if [ "%result%" <> "" ] (
    set Ip=%alternativeIp% 
) 
) 
+0

可悲的是,細節不足,爲妥善解決。你在尋找一個可能爲空的文件,或者是尋找一個可能不存在的文件? *文件中可能包含哪些內容,以及在哪些情況下你想要做什麼? – Magoo

+0

Magoo:文件內容爲「致命錯誤:網絡錯誤:連接超時」 – Rene

回答

0

此行是無效的批處理文件的語法

if [ "%result%" <> "" ] (

的支架是一個UNIX shell語法,不以批處理工作。另外,批次中沒有<>運營商。

你想要的行

if not "%result%"=="" (
+0

不是這種情況。所需的行是'if not defined result',因爲'[not] defined'對變量的'run-time'值進行操作,但由於它在塊內設置,所以需要'!result!'來訪問run時間值**和**已經調用了「延遲擴展」。此外,set中的'/ p'語法不正確,因爲這會提示用戶輸入。最好將'set'完全退出並使用'if'%% j「==」somestring「'但是'%% j'永遠不會爲空 - 如果該行爲空,則'for/f'將跳過該行 - 這個迭代根本不會被執行。 「if」語法的評論是有效的。 – Magoo

+0

@Magoo感謝您的解釋。我沒有看到整個事情;只是語法錯誤的一行。如果你把所有這些都放在一個答案中,我會贊成它。 –

+0

感謝您的回答。 – Rene