因為要設定oracle的定期備份,所以再次操起闊別多年的dos命令和bat語法,以下記錄一些心得:
if 命令示例詳解 if,正如它e文中的意思,就是「如果」的意思,用來進行條件判斷。翻譯過來的意思就是:如果符合某一條件,便執行後面的命令。
主要用來判斷,1、兩個「字串」是否相等;2、兩個數值是大於、小於、等於,然後執行相應的命令。
當然還有特殊用法,如結合errorlevel:if errorlevel 1 echo error
或者結合defined(定義的意思):if defined test (echo it is defined) else echo it isn't defined 用法示例:
1、檢測字串(注意,用if檢測字串是否相等的時候,後面用的不是「=」,而是「==」):
複製** **如下:
@echo off
set "str=this is a test"
rem 檢測變數%str%是否等於test,如果相等,顯示ok,否則顯示no
if "%str%"=="test" (echo ok) else echo no
pause>nul 2、檢測數值:(注意,批處理中大於符號不能用:「>」,而用"gtr",其它的也類似)
比較運算子一覽:
equ - 等於
neq - 不等於
lss - 小於
leq - 小於或等於
gtr - 大於
geq - 大於或等於
檢測數值 20 是否大於 15演示**:
複製** **如下:
@echo off
set /a num1=20
set /a num2=15
if %num1% gtr %num2% echo %num1%大於%num2%
if %num1% equ %num2% echo %num1%等於%num2%
if %num1% lss %num2% echo %num1%小於%num2%
pause>nul 3、if結合errorlevel使用:
說明:環境變數errorlevel的初始值為0,當一些命令執行不成功,就會返回乙個數值,如:1 ,2 等
if-errorlevel
測試**:
複製** **如下:
@echo off
xcopy f:\test.bat d:\
if errorlevel 1 echo 檔案拷貝失敗
if errorlevel 0 echo 成功拷貝檔案 如果檔案拷貝成功,螢幕就會顯示「成功拷貝檔案」,否則就會顯示「檔案拷貝失敗」。
if errorlevel 是用來測試它的上乙個dos命令的返回值的,注意只是上乙個命令的返回值,而且返回值必須依照從大到小次序順序判斷。
因此下面的批處理檔案是錯誤的:
@echo off
xcopy c:\autoexec.bat d:\
if errorlevel 0 echo 成功拷貝檔案
if errorlevel 1 echo 未找到拷貝檔案
if errorlevel 2 echo 使用者通過ctrl-c中止拷貝操作
if errorlevel 3 echo 預置錯誤阻止檔案拷貝操作
if errorlevel 4 echo 拷貝過程中寫盤錯誤
無論拷貝是否成功,後面的:
未找到拷貝檔案
使用者通過ctrl-c中止拷貝操作
預置錯誤阻止檔案拷貝操作
拷貝過程中寫盤錯誤
都將顯示出來。
複製** **如下:
附錄:
以下就是幾個常用命令的返回值及其代表的意義:
backup
0 備份成功
1 未找到備份檔案
2 檔案共享衝突阻止備份完成
3 使用者用ctrl-c中止備份
4 由於致命的錯誤使備份操作中止
diskcomp
0 盤比較相同
1 盤比較不同
2 使用者通過ctrl-c中止比較操作
3 由於致命的錯誤使比較操作中止
4 預置錯誤中止比較
diskcopy
0 盤拷貝操作成功
1 非致命盤讀/寫錯
2 使用者通過ctrl-c結束拷貝操作
3 因致命的處理錯誤使盤拷貝中止
4 預置錯誤阻止拷貝操作
format
0 格式化成功
3 使用者通過ctrl-c中止格式化處理
4 因致命的處理錯誤使格式化中止
5 在提示「proceed with format(y/n)?」下使用者鍵入n結束
xcopy
0 成功拷貝檔案
1 未找到拷貝檔案
2 使用者通過ctrl-c中止拷貝操作
4 預置錯誤阻止檔案拷貝操作
5 拷貝過程中寫盤錯誤 4、if還有乙個特殊的用法就是可以用來檢測某個變數是否已經被定義
用法示例:
複製** **如下:
@echo off
set "str1=ok"
set "str2=no"
if defined str1 echo str1已經被定義
if defined str2 echo str2已經被定義
if defined str3 (echo str3已經被定義) else echo str3 沒有被定義
pause>nul
重新學習makefile
今天回顧了一下makefile,做下筆記 首先準備幾個簡單的檔案 add.c head.h main.c mul.c sub.c 然後第一版 makefile 然後第二版 gcc c main.c o main.o 然後第三版 makefile 的語法跟shell 很像 第四版 目標 依賴 tab ...
重新學習struts
這就是所謂的一邊工作一邊學習。今天準備把給公司寫個管理頁面,按照之前的路數,寫起來應該挺快,但是不太規範。也就沉下心來學習一下了。第二個學習的是,異常處理。也是在學校的時候,聽老師說過,struts2有提供乙個異常處理機制。平常我們有些異常處理,會在 中寫try catch。public strin...
mysql重新學習筆記
mysql命令複習 desc table 列式展示 alter add 增加列 delete和 truncate table的區別 1.delete dml語言 資料還可以找回來,恢復回來 逐條刪除 刪除速度要慢一些 可以有條件的刪除。delete from 表名 where 條件 2.trunca...