[20160222]windows批處理執行方式.txt
[20160222]windows批處理執行方式.txt
--上個星期除錯windows批處理時遇到一些問題,做一個記錄。例子:
R:\>cat aa.bat
echo '1111'
pause
echo '2222'
--執行如下:
R:\>aa
R:\>echo '1111'
'1111'
R:\>pause
請按任意鍵繼續. . .
--在暫停的時候開啟另外的視窗編輯檔案,將2222 換成 3333.然後繼續執行,應該輸出什麼呢?我開始以為應該輸出2222.
--結果輸出的是3333.
R:\>echo '3333'
'3333'
--說明windows讀取批處理指令碼並沒有鎖定檔案,繼續讀取是透過偏移量讀取的。如果重複執行暫停時,修改前面的內容。修改1111為1111abc。
--很明顯執行如果在從偏移量讀取,將是錯誤的。執行如下:
R:\>aa
R:\>echo '1111'
'1111'
R:\>pause
請按任意鍵繼續. . .
R:\>e
'e' 不是內部或外部命令,也不是可執行的程式
或批處理檔案。
R:\>echo '3333'
'3333'
--這個在除錯windows批處理時要注意。
--繼續測試linux bash shell的情況:
$ cat aa.sh
#! /bin/bash
echo 1111
read -n 1 a
echo 2222
--執行暫停時修改2222為3333.
$ . aa.sh
1111
2222
--可以發現輸出的是依舊是2222.
--從這裡也看出兩者的不同,另外也說明windows批處理執行效率應該非常低下。
--也說明在除錯windows批處理指令碼要注意這個細節。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-1992255/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 04 Windows批處理中的條件執行Windows
- 08 Windows批處理之執行編譯後的程式Windows編譯
- 09 Windows批處理之標籤和無序執行Windows
- Windows批處理命令Windows
- Windows批處理學習(二)——批處理(3)薦Windows
- [20170425]變態的windows批處理1.txtWindows
- [20170425]變態的windows批處理2.txtWindows
- windows批處理之一:字串處理Windows字串
- Windows批處理檔案Windows
- 批處理檔案 bat 後臺執行BAT
- 用批處理檔案執行備份
- prepareStatement和Statement執行批處理的執行情況REST
- Jenkins執行遠端Windows批處理的許可權問題JenkinsWindows
- BAT批處理判斷服務是否正常執行(批處理命令綜合應用)BAT
- [20171225]變態的windows批處理4.txtWindows
- Windows批處理命令專題Windows
- windows sql loader批處理WindowsSQL
- 如何在批處理模式下執行 top 命令模式
- Jenkins執行批處理檔案失敗Jenkins
- C#執行外部程式之執行DOS命令和批處理C#
- windows批處理之六-echo輸出不換行Windows
- oracle windows下使用批處理進行exp匯出OracleWindows
- [20210510]變態的windows批處理7.txtWindows
- Windows批處理 呼叫程式後 不等待子程式 父程式繼續執行命令Windows
- 關於用飛信框架執行net程式-用批處理執行框架
- 開啟windows批處理大門Windows
- 部分Windows批處理指令碼整理Windows指令碼
- windows批處理之三:for迴圈Windows
- 用批處理檔案編譯並執行java編譯Java
- [20190219]變態的windows批處理6.txtWindows
- windows 批處理把所有java原始碼匯入一個txt檔案中WindowsJava原始碼
- JDK執行緒池異常處理方式JDK執行緒
- Django執行方式及處理流程總結Django
- 【轉】批處理命令請求以管理員身份執行
- 07 Windows批處理之檔案操作Windows
- [20211207]變態的windows批處理10.txtWindows
- [20211011]變態的windows批處理9.txtWindows
- [20180116]變態的windows批處理5.txtWindows