台灣最大程式設計社群網站
線上人數
1055
 
會員總數:246134
討論主題:189713
歡迎您免費加入會員
討論區列表 >> Windows 伺服器 >> 【求助】DOS模式有沒有辦法像UNIX記錄畫面LOG
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
【求助】DOS模式有沒有辦法像UNIX記錄畫面LOG
價值 : 0 QP  點閱數:2463 回應數:13
樓主

ballwarm
初學者
21 9
74 17
發送站內信

【求助】DOS模式有沒有辦法像UNIX記錄畫面LOG

假如我在DOS模式操作畫面如下

--------------------------------------------------------------------
C:\>dir /w
 磁碟區 C 中的磁碟沒有標籤。
 磁碟區序號:  B0C0-56C9

 目錄:  C:\

[Documents and Settings] [driver]                 [iReport-0.3.2]
[j2sdk1.4.2_03]          [OfficeScan NT]          [Program Files]
[SC]                     setup.bat                [sybase]
tmuninst.ini             [unzipped]               win2.log
[WINNT]                  [WUTemp]
               3 個檔案              66 位元組
              11 個目錄   8,711,684,096 位元組可用

C:\>cd sc

C:\SC>
--------------------------------------------------------------------

請問有沒有辦法可以讓這些文字寫到某一個TXT檔案裡

用指令或是用何軟體可以做到嗎??

謝謝

本篇文章發表於2004-09-22 09:59
1樓
回應

redhair
檢舉此回應
try Redirection character
本篇文章回覆於2004-09-22 10:29
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

cute
檢舉此回應
C:\>dir /w > C:\a.txt

dir出來的東西會存到 a.txt
本篇文章回覆於2004-09-22 10:32
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

ballwarm
檢舉此回應
有辦法連指令是下什麼都寫出來嗎

因為我是要跑批次程式

而這些執行檔會秀一些訊息在畫面上

可是我沒有寫到檔案

一但dos畫面關掉後

這些訊息就不見了

請問這樣能做到嗎
本篇文章回覆於2004-09-22 13:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

redhair
檢舉此回應
x.bat > x.txt
本篇文章回覆於2004-09-22 14:17
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

ballwarm
檢舉此回應
謝謝各位大大的解答

我要做的

xxx.bat > log_YYYYMMDD.txt

這樣就行了

接下來剩如何append及產生日期的問題了

因為

xxx.bat > log_YYYYMMDD.txt
ooo.bat > log_YYYYMMDD.txt

這樣會覆蓋掉原檔案

1.不知道怎麼才能append在此檔之後

2.日期如何在bat檔,去截字串呢(我試了log_%date%.txt可是他變成log_星期四)

有大大可以幫我解這二個問題的嗎…謝謝
本篇文章回覆於2004-09-23 13:23
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

redhair
檢舉此回應
如果在同一天之內, log_YYYYMMDD.txt 還是會重覆,所以我會再加上時與分
其中一個做法原理如下
(1) x.bat > log.txt
(2) log.txt 為新生成的檔案,所以每次的生成時間都不同
所以可以抓出log.txt 的時間與日期,再用for ...do +  tokens
等語法去抓出年,月,日,時,分的值,再自行組合成 
log_YYYYMMDD_hhmm 的字串
(3) ren log.txt log_YYYYMMDD_hhmm.txt

上述原理是在Win2000下執行的,由於Win20003,2000,NT,XP 
98/95 的DOS command 有些許不同,你應根據你的系統再做修改
或者找出別的方法
本篇文章回覆於2004-09-23 14:09
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

ballwarm
檢舉此回應
謝謝redhair的解答

關於第(2)點指令是否舉例一下
關於第(3)點指令是否舉例一下

我如何取到時間截到字串

並塞到組成新的字串

不用用變數

不好意思…我有try…try不出來

沒有這樣寫過bat檔…懇請會的大大舉例一下

感激
本篇文章回覆於2004-09-23 16:18
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
最有價值解答

redhair
檢舉此回應
假如你是使用Win2000,在IE的address輸入下列:
mk:@MSITStore:C:\WINNT\Help\ntcmds.chm::/for__additional.htm

你就可以看到for command的用法,特別留意File parsing section
本篇文章回覆於2004-09-23 16:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
作者回應

ballwarm
檢舉此回應
大功告成

謝謝各位大大的友情協助

直按在dos mode用這個
for /f "tokens=2,3,4 delims=/- " %x in ("%date%") do set d=%x%y%z

寫在bat裡用這個
@echo on
cls
for /f "tokens=2,3,4 delims=/- " %%x in ("%date%") do set d=%%x%%y%%z
java XXXX1 > log_%d%.txt
java XXXX2 >> log_%d%.txt (>>表示append的意思)

謝謝各位大大的幫忙
本篇文章回覆於2004-09-24 10:40
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
回應

redhair
檢舉此回應
這裡補充兩點
(1) echo on is default value,所以你不需要第一行
(2) 一般習慣會在最後清除所使用的environment variables
Ex: Set d=
本篇文章回覆於2004-09-24 11:08
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
回應

湯包
檢舉此回應
1.不知道怎麼才能append在此檔之後
只要將 > 符號改成 >> 符號即可

2.日期如何在bat檔,去截字串呢(我試了log_%date%.txt可是他變成log_星期四)
你應該是要用
"log_%date%.txt"
也就是前後都要加上雙引號!因為%date%變數內容有空白
所以Win會白痴白痴的誤判!
本篇文章回覆於2004-10-19 15:19
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
回應

tia
檢舉此回應
請問用for /f "tokens=2,3,4 delims=/- " %%x in ("%date%") do set d=%%x%%y%%z
抓出來的是西元的年份,有什麼辦法可以改成民國???在批次檔裡面的變數可以執行減法運算嗎???
有什麼辦法可以在批次裡面抓到民國的年、月
本篇文章回覆於2004-10-21 15:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
回應

tia
檢舉此回應
已經找到解答了....
本篇文章回覆於2004-10-22 14:00
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.