联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
for /f "skip=4 tokens=3 delims= " %%i in ('reg query HKCU\Software\Microsoft\Office\11.0\Outlook\Security /v "OutlookSecureTempFolder"') do (set OSTF=%%i) if errorlevel 0 goto LU echo Your Outlook Secure TempFolder Path is: echo "%OSTF%" echo. goto end :LU echo by~~ goto end :end
Originally posted by yishanju at 2009-2-5 05:43 PM: if %%i 为空 退出 这样不行么
Originally posted by yishanju at 2009-2-5 06:14 PM: if /? 就有啊
在批次檔中執行條件處理。 IF [NOT] ERRORLEVEL number command IF [NOT] string1==string2 command IF [NOT] EXIST filename command NOT 表示 Windows 應該只有在條件為偽時才執行命令。 ERRORLEVEL number 當上一個執行的程式傳回的結束碼大於或等於指定 數字時,則條件為真。 string1==string2 當指定的文字字串相符合時,則條件為真。 EXIST filename 如果指定的檔名存在時,則條件為真。 command 指定當條件為真時所要執行的命令。命令之後可以 接著 ELSE 命令。當指定條件為偽時,緊接在 ELSE 命令之後的命令將會被執行。 ELSE 子句必須出現在 IF 之後的同一行。例如: IF EXIST filename. ( del filename. ) ELSE ( echo filename. missing. ) 以下命令無法作用,因為 del 命令必須以換行字元來結尾: IF EXIST filename. del filename. ELSE echo filename. missing 下面命令也無法作用,因為 ELSE 命令必須在與 IF 命令同一行的結尾: IF EXIST filename. del filename. ELSE echo filename. missing 下面命令只有在寫成一行時才能作用: IF EXIST filename. (del filename.) ELSE echo filename. missing 如果您啟用擴充命令,IF 的變更如下: IF [/I] string1 compare-op string2 命令 IF CMDEXTVERSION 數字命令 IF DEFINED 變數命令 compare-op 可以是: EQU - 等於 NEQ - 不等於 LSS - 小於 LEQ - 小於或等於 GTR - 大於 GEQ - 大於或等於 而如果指定 /I 參數,則執行區分大小寫的字串比對。此 /I 參數也可使用 string1==string2 格式於 IF 命令。這些比對是通用的,因為在比對中,如 果 string1 及 string2 兩者皆由十進位數字所構成,則字串將會轉換為數 字,並執行數字的比對。 CMDEXTVERSION 條件式的運作和 ERRORLEVEL 一樣,除非它和與擴充命令相 關的內部版本編號作比對。第一個版本為 1。若擴充命令大幅度地增強時就 再加 1。當擴充命令停用時,CMDEXTVERSION 條件式永遠不為真。 DEFINED 條件式的運作和 EXISTS 一樣,除非它帶有環境變數名稱,如果環 境變數已定義則傳回 true 值。 %ERRORLEVEL% 將擴充到代表目前 ERRORLEVEL 變數的一個字串,前提是已 經沒有名為 ERRORLEVEL 的環境變數,在這個情況下,您會得到它的值。使 用此值和上面的數字比對運算元,您可以作下列的選擇: goto answer %ERRORLEVEL% :answer0 提示您鍵入 Y 加以確定 :answer1 提示您鍵入N 加以否定 您也可使用上面的數字比對: IF %ERRORLEVEL% LEQ 1 goto okay %CMDCMDLINE% 將擴充到比 CMD.EXE 的任何處理程序更早傳給 CMD.EXE 的 原始命令列,前提是已經沒有名為 CMDCMDLINE 的環境變數,在這個情形下, 您會得到它的值。 %CMDEXTVERSION% 將擴充成一個表示目前 CMDEXTVERSION 值的字串, 表示沒有名為 CMDEXTVERSION 的環境變數。這種情況下您將會得到它的值。
Originally posted by wxcute at 2009-2-9 01:33 PM: reg query "键项" [/v "值"] echo %errorlevel%
cd\ cls for /f "skip=4 tokens=3 delims= " %%i in ('reg query "HKCU\Software\Microsoft\Office\11.0\Outlook\Security" /v "OutlookSecureTempFolder"') do (set OSTF=%%i) echo %errorlevel% pause
C:\>for /F "skip=4 tokens=3 delims= " %i in ('reg query "HKCU\Software\Micro soft\Office\11.0\Outlook\Security" /v "OutlookSecureTempFolder"') do (set OSTF=% i ) 錯誤: 系統找不到指定的登錄機碼或值 C:\>echo 0 0 C:\>pause 請按任意鍵繼續 . . .
C:\>for /F "skip=4 tokens=3 delims= " %i in ('reg query "HKCU\Software\Micro soft\Office\11.0\Outlook\Security" /v "OutlookSecureTempFolder"') do (set OSTF=% i ) C:\>(set OSTF=C:\Documents and Settings\VM\Local Settings\Temporary Internet Fil es\OLK64\ ) C:\>echo 0 0 C:\>pause 請按任意鍵繼續 . . .
reg query "HKCU\Software\Microsoft\Office\11.0\Outlook\Security" /v "OutlookSecureTempFolder" >nul echo %errorlevel% reg query "HKCU\Software\Microsoft\Office\11.0\Outlook\Security" /v "Outlook" >nul echo %errorlevel% pause
C:\>reg query "HKCU\Software\Microsoft\Office\11.0\Outlook\Security" /v "Outlook SecureTempFolder" 1>nul C:\>echo 0 0 C:\>reg query "HKCU\Software\Microsoft\Office\11.0\Outlook\Security" /v "Outlook " 1>nul 錯誤: 系統找不到指定的登錄機碼或值 C:\>echo 1 1 C:\>pause 請按任意鍵繼續 . . .
Originally posted by zhengqian529 at 2009-2-16 03:48 PM: errorlevel 这个值是系统返回的,你要不自己设置一个error变量: 1. 存在时,set error=1 2. 不存在时,set error=0 然后后面紧接你要执行的操作,不一定要纠结在%errorlevel%这个系统给定的变量
@echo off reg query "HKCU\Software\Microsoft\Office\11.0\Outlook\Security" /v "OutlookSecureTempFolder" >nul if %errorlevel% EQU 0 ( for /f "skip=4 tokens=3 delims= " %%i in ('reg query HKCU\Software\Microsoft\Office\11.0\Outlook\Security /v "OutlookSecureTempFolder"') do (set OSTF=%%i) echo Your Outlook Secure TempFolder Path is: echo "%OSTF%" echo. ) ELSE ( echo Bye!! ) pause
Your Outlook Secure TempFolder Path is: "" 請按任意鍵繼續 . . .
Your Outlook Secure TempFolder Path is: "C:\Documents and Settings\VM\Local Settings\Temporary Internet Files\OLK64\" Bye!! 請按任意鍵繼續 . . .
@echo off reg query "HKCU\Software\Microsoft\Office\11.0\Outlook\Security" /v "OutlookSecureTempFolder" >nul 2>nul set OOS=%errorlevel% for /f "skip=4 tokens=3 delims= " %%i in ('reg query HKCU\Software\Microsoft\Office\11.0\Outlook\Security /v "OutlookSecureTempFolder" 2^>nul') do (set OSTF=%%i) if %OOS% EQU 0 ( echo. echo Your Outlook Secure TempFolder Path is: echo "%OSTF%" echo. ) ELSE ( echo. echo Bye!! echo. ) pause