RSS   



  可打印版本 | 推薦給朋友 | 訂閱主題 | 收藏主題 | 純文字版  


 
 16  1/2  1  2  > 


 
主題: [求助] [求助]bat 語法   字型大小:||| 
fishwater
鐵驢友〔初級〕
等級: 4
默白

十週年紀念徽章(六級)  

 . 積分: 30
 . 文章: 128
 . 收花: 138 支
 . 送花: 225 支
 . 比例: 1.63
 . 在線: 825 小時
 . 瀏覽: 6901 頁
 . 註冊: 7051
 . 失蹤: 2339
 . 台灣
#1 : 2008-6-18 01:53 PM     只看本作者 引言回覆

請問一個bat語法

我想跑一些程式,然後想寫一個bat檔自動不斷執行它

1.需要不斷迴圈
2.跑的結果需要存成一個log
3.正在跑的結果可以show在螢幕上

因為假如我弄成  test.exe -a >>log.txt
那我跑的test.exe -a這個東西的結果只會跑到log裡面,無法在螢幕上顯示,所以不知道該怎麼寫.

請問有辦法這樣弄嘛???謝謝!!



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
Ailio
版主
等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30
鸚鵡螺號 艦長

十週年紀念徽章(五級)  

今日心情

 . 積分: 2664
 . 文章: 6462
 . 收花: 22900 支
 . 送花: 4903 支
 . 比例: 0.21
 . 在線: 2826 小時
 . 瀏覽: 85748 頁
 . 註冊: 7449
 . 失蹤: 116
 . 莫名奇妙的商人星球
#2 : 2008-6-18 03:12 PM     只看本作者 引言回覆

其實在google打bat語法就很多資料了喔
http://tristones.viaspeip.com/archives/001130.html
這篇寫的蠻詳細的 簡體字 記得裝同文堂或是alibabar轉繁體看

至於迴圈 Bat裡面大多都用Goto為主
至於test.exe -a 會產生什麼事 要問Test.exe這之程式怎麼寫的
如果這支程式就只會把資訊寫入log檔 那bat是不可能要求他作他不會做的事情
bat只不過就是一大串的指令自動作而已 並不能做出超過程式範圍的動作



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
dlc007
鍛鐵驢友
等級: 7等級: 7等級: 7


 . 積分: 89
 . 文章: 266
 . 收花: 387 支
 . 送花: 26 支
 . 比例: 0.07
 . 在線: 507 小時
 . 瀏覽: 12096 頁
 . 註冊: 6843
 . 失蹤: 1473
#3 : 2008-6-18 03:27 PM     只看本作者 引言回覆


引用:
1.需要不斷迴圈
2.跑的結果需要存成一個log
3.正在跑的結果可以show在螢幕上


1. 不斷迴圈不難, bat檔寫成
:label1
.....
goto label2

:label2
.....
goto label1

2. 跑的結果是要儲存bat跑的結果還是程式跑的結果?
如果bat跑的結果, 要自己下指令紀錄跑了什麼, 例如:
echo 執行步驟1 >> log
echo 執行步驟2 >> log
如果是要紀錄程式跑的結果, 應該是在程式處理比較好吧

3. 要顯示跑的結果, 也是同上


引用:
因為假如我弄成  test.exe -a >>log.txt
那我跑的test.exe -a這個東西的結果只會跑到log裡面,無法在螢幕上顯示,所以不知道該怎麼寫.


要同時顯示又要紀錄顯示結果, bat好像做不到耶, 一般只能從程式處理

[dlc007 在  2008-6-18 03:29 PM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
fishwater
鐵驢友〔初級〕
等級: 4
默白

十週年紀念徽章(六級)  

 . 積分: 30
 . 文章: 128
 . 收花: 138 支
 . 送花: 225 支
 . 比例: 1.63
 . 在線: 825 小時
 . 瀏覽: 6901 頁
 . 註冊: 7051
 . 失蹤: 2339
 . 台灣
#4 : 2008-6-18 05:35 PM     只看本作者 引言回覆

是嘛!!果然bat做不到阿.

迴圈和存log,這我都可以弄出來,只是沒法讓程式結果顯現又存成log.
謝謝指教!!

BTW,"test.exe -a" 這只是我舉的例子.

Thanks~



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
阿達猴
銀驢友〔初級〕
等級: 12等級: 12等級: 12
阿達猴

今日心情

 . 積分: 428
 . 文章: 3209
 . 收花: 2779 支
 . 送花: 4709 支
 . 比例: 1.69
 . 在線: 2718 小時
 . 瀏覽: 14634 頁
 . 註冊: 8210
 . 失蹤: 3
 . TWed2k-DVD幫BT組
#5 : 2008-6-18 05:40 PM     只看本作者 引言回覆

應該是無法同時做兩件事吧~
資料以經>>到檔案去了
所以畫面上就沒有了
除非你>>到檔案
再從檔案>>到畫面



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
fishwater
鐵驢友〔初級〕
等級: 4
默白

十週年紀念徽章(六級)  

 . 積分: 30
 . 文章: 128
 . 收花: 138 支
 . 送花: 225 支
 . 比例: 1.63
 . 在線: 825 小時
 . 瀏覽: 6901 頁
 . 註冊: 7051
 . 失蹤: 2339
 . 台灣
#6 : 2008-6-18 06:25 PM     只看本作者 引言回覆

恩恩....剛剛同事也是這樣說!!
只是我要跑stress test,所以一跑就是12小時以上,不能把所以跑過的結果不斷show出來
所以....結論應該就是不行囉??!!



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
jegow
青銅驢友
等級: 11等級: 11等級: 11等級: 11


 . 積分: 340
 . 文章: 402
 . 收花: 3200 支
 . 送花: 3433 支
 . 比例: 1.07
 . 在線: 2736 小時
 . 瀏覽: 3330 頁
 . 註冊: 7448
 . 失蹤: 105
#7 : 2008-6-18 07:23 PM     只看本作者 引言回覆

:label1
test.exe >> log.txt
type log.txt
goto label1
這樣就可以了



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
fishwater
鐵驢友〔初級〕
等級: 4
默白

十週年紀念徽章(六級)  

 . 積分: 30
 . 文章: 128
 . 收花: 138 支
 . 送花: 225 支
 . 比例: 1.63
 . 在線: 825 小時
 . 瀏覽: 6901 頁
 . 註冊: 7051
 . 失蹤: 2339
 . 台灣
#8 : 2008-6-18 10:16 PM     只看本作者 引言回覆


引用:
jegow寫到:
:label1
test.exe >> log.txt
type log.txt
goto label1
這樣就可以了


謝謝你....這個方法已經有想到,可是卻是下下策,因為跑了12小時後的log量勢必很大,不可能每次都全部把它type出來,只想要當次跑的結果.

要當次的結果的原因是,萬一當機或是出問題了,才能從畫面得知,不然當機後可能log會沒存到.

謝謝回覆!!



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
oislone
鐵驢友〔中級〕
等級: 5等級: 5


 . 積分: 54
 . 文章: 44
 . 收花: 247 支
 . 送花: 33 支
 . 比例: 0.13
 . 在線: 1713 小時
 . 瀏覽: 26729 頁
 . 註冊: 6980
 . 失蹤: 712
#9 : 2008-6-18 10:28 PM     只看本作者 引言回覆

升級版

:label1

test.exe >> log1.txt
type log1.txt
copy log1.txt+log.txt  logall.txt
del log1.txt
del log.txt
rename logall.txt log.txt
del logall.txt

goto label1

大概可以吧



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
dennischerry
青銅驢友
等級: 11等級: 11等級: 11等級: 11


 . 積分: 217
 . 文章: 644
 . 收花: 1551 支
 . 送花: 406 支
 . 比例: 0.26
 . 在線: 1604 小時
 . 瀏覽: 35871 頁
 . 註冊: 7230
 . 失蹤: 1
#10 : 2008-6-19 09:24 AM     只看本作者 引言回覆


引用:
oislone寫到:
升級版

:label1

test.exe >> log1.txt
type log1.txt
copy log1.txt+log.txt  logall.txt
del log1.txt
del log.txt
rename logall.txt log.txt
del logall.txt

goto label1

大概可以吧



再修改一下

:label1

test.exe > log.txt
type log.txt
type log.txt >>  logall.txt

goto label1

說明:
> 相當於output, >>相當於append



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  訪問主頁  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
fishwater
鐵驢友〔初級〕
等級: 4
默白

十週年紀念徽章(六級)  

 . 積分: 30
 . 文章: 128
 . 收花: 138 支
 . 送花: 225 支
 . 比例: 1.63
 . 在線: 825 小時
 . 瀏覽: 6901 頁
 . 註冊: 7051
 . 失蹤: 2339
 . 台灣
#11 : 2008-6-19 09:31 AM     只看本作者 引言回覆

Thanks....終於可以用了!!但是因為不是資訊系的,所以對於寫程式這方面不太兩光,想再請教一下如何可以把他精簡化!!
因為要跑的程式滿多的,每行都用土法煉鋼,好長阿....應該用個if else之類的可以縮減,是嗎??

@echo off
:label1
c:
cd \Program Files\NVIDIA Corporation\Release

@echo on
alignedTypes -noprompt >c:\log.txt
type c:\log.txt
@echo off
type c:\log.txt >> c:\logall.txt
@echo on
asyncAPI -noprompt >c:\log.txt
type c:\log.txt
@echo off
type c:\log.txt >> c:\logall.txt
@echo on
bandwidthTest -noprompt >c:\log.txt
type c:\log.txt
下刪
.
.
.
.

@echo off
cd \
type unit >>count.txt (用來計數loop,unit放在c:\)
dir count.txt >>logall.txt (loop加總用)
goto label1

[fishwater 在  2008-6-19 12:11 PM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
dennischerry
青銅驢友
等級: 11等級: 11等級: 11等級: 11


 . 積分: 217
 . 文章: 644
 . 收花: 1551 支
 . 送花: 406 支
 . 比例: 0.26
 . 在線: 1604 小時
 . 瀏覽: 35871 頁
 . 註冊: 7230
 . 失蹤: 1
#12 : 2008-6-19 12:46 PM     只看本作者 引言回覆

這種程式不太能簡化...
認份點, 用複制貼上, 可以寫的很快



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  訪問主頁  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
jazzblue
版主
等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30
志凌

 . 積分: 1106
 . 文章: 3836
 . 收花: 8945 支
 . 送花: 906 支
 . 比例: 0.1
 . 在線: 2162 小時
 . 瀏覽: 43731 頁
 . 註冊: 7295
 . 失蹤: 201
 . 信義之星
#13 : 2008-6-19 09:22 PM     只看本作者 引言回覆

批次檔的功能有限
若經常要寫一些程序
我會建議使用 JScript  或 VB Script



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
oislone
鐵驢友〔中級〕
等級: 5等級: 5


 . 積分: 54
 . 文章: 44
 . 收花: 247 支
 . 送花: 33 支
 . 比例: 0.13
 . 在線: 1713 小時
 . 瀏覽: 26729 頁
 . 註冊: 6980
 . 失蹤: 712
#14 : 2008-6-20 10:06 PM     只看本作者 引言回覆

type log.txt >>  logall.txt
會比 COPY 慢, 因為 COPY 是用區塊, type 是位元顯示,
不過如果不要求速度, 是都沒關係啦.

另外, 結果很多程式要作 LOG, 用 COPY 會更好, 可以使用

a.exe > a.log
type a.log
b.exe > b.log
type b.log
c.exe > b.log
type c.log

copy logall.txt+a.log+b.log+c.log log.txt
.
.
.

另外, 如果 exe 檔是在同一目錄, 可以用新版的 DOS 變數功能, 作自動迴圈, 就不用一直加指令,
可以配合有多少 exe 檔, 就作多少次迴圈動作, 批次檔變數可以查 DOS 視窗的 FOR /? 查 FOR 的
說明, 裡面有 %~ 的變數可用, 算是很強的功能. 但是舊版的 DOS 好像沒有.



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
Yves
鐵驢友〔中級〕
等級: 5等級: 5


今日心情

 . 積分: 52
 . 文章: 83
 . 收花: 246 支
 . 送花: 45 支
 . 比例: 0.18
 . 在線: 274 小時
 . 瀏覽: 22961 頁
 . 註冊: 6467
 . 失蹤: 1571
#15 : 2008-6-22 03:41 AM     只看本作者 引言回覆

@Echo off
For /F "delims=" %%i in ('ipconfig') do echo. %%i > con & echo. %%i >> log.txt
For /F "delims=" %%i in ('netstat- nr') do echo. %%i > con & echo. %%i >> log.txt
For /F "delims=" %%i in ('route print') do echo. %%i > con & echo. %%i >> log.txt

把程式執行的結果讀到變數, 然後echo 變數到畫面 跟 echo到檔案



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記

 16  1/2  1  2  > 
   

快速回覆
表情符號

更多 Smilies

字型大小 : |||      [完成後可按 Ctrl+Enter 發佈]        

溫馨提示:本區開放遊客瀏覽。
選項:
關閉 URL 識別    關閉 表情符號    關閉 Discuz! 代碼    使用個人簽名    接收新回覆信件通知
發表時自動複製內容   [立即複製] (IE only)


 



所在時區為 GMT+8, 現在時間是 2024-11-22 06:52 AM
清除 Cookies - 連絡我們 - TWed2k © 2001-2046 - 純文字版 - 說明
Discuz! 0.1 | Processed in 0.028201 second(s), 6 queries , Qzip disabled