如何讓 FOR 批次顯示資料

如何讓 FOR 批次顯示資料
想請問大人該怎寫才會一照如下方式顯示
因小弟想寫批次檔檢查大批電腦可用容量
搜尋了很久微軟文獻也翻過了但是找不到
不知道是不是我漏找了 ,望知道的大人解謎

批次內文 tt.bat
@echo off
for /f "tokens=2 delims=:" %%i IN ('type pc.txt^|findstr "Model"') DO (echo ●"硬碟型號" ○%%i)
for /f "tokens=2 delims=:" %%i IN ('type pc.txt^|findstr "Total"') DO (echo ●"硬碟容量" ○%%i)

文件內文 pc.txt
------------------------
Disk & DVD/CD-ROM Drives
------------------------
Drive: C:
Free Space: 23.0 GB
Total Space: 30.0 GB
File System: NTFS
Model: WDC WD2500AAKS-22VSA0

Drive: D:
Free Space: 51.0 GB
Total Space: 208.5 GB
File System: NTFS
Model: WDC WD2500AAKS-22VSA0

Drive: E:
Free Space: 28.8 GB
Total Space: 238.5 GB
File System: NTFS
Model: WDC WD2500KS-00MJB0


輸出結果....
●"硬碟型號" ○ WDC WD2500AAKS-22VSA0
●"硬碟型號" ○ WDC WD2500AAKS-22VSA0
●"硬碟型號" ○ WDC WD2500KS-00MJB0
●"硬碟容量" ○ 30.0 GB
●"硬碟容量" ○ 208.5 GB
●"硬碟容量" ○ 238.5 GB

希望結果
●"硬碟型號" ○ WDC WD2500AAKS-22VSA0
●"硬碟容量" ○ 30.0 GB
●"硬碟型號" ○ WDC WD2500AAKS-22VSA0
●"硬碟容量" ○ 208.5 GB
●"硬碟型號" ○ WDC WD2500KS-00MJB0
●"硬碟容量" ○ 238.5 GB

....謝謝
2010-04-18 17:38 發佈
文章關鍵字 for 資料
已在 Windows 7 X64 中測試過.

zz.bat

@echo off
setlocal EnableExtensions
setlocal EnableDelayedExpansion
if exist tmp1.txt del tmp1.txt
if exist tmp2.txt del tmp2.txt
for /f "tokens=* delims=" %%a in (pc.txt) do @echo %%a >>tmp1.txt
findstr /n "Model" tmp1.txt>tmp2.txt
for /f "tokens=1,3 delims=:" %%i in (tmp2.txt) do (
echo ●"硬碟型號" ○%%j
set/a abc=3
set/a def=%%i-2
for /f "tokens=2 delims=:" %%k in (tmp1.txt) do (
set/a abc=!abc!+1
if "!def!"=="!abc!" echo ●"硬碟容量" ○%%k
)
)
if exist tmp1.txt del tmp1.txt
if exist tmp2.txt del tmp2.txt

結果:

F:\z\4>dir
磁碟區 F 中的磁碟是 HD_DATA2
磁碟區序號: 924F-61E3

F:\z\4 的目錄

2010/04/21 上午 01:59 <DIR> .
2010/04/21 上午 01:59 <DIR> ..
2010/04/21 上午 01:37 391 pc.txt
2010/04/21 上午 12:13 270 tt.bat
2010/04/21 上午 02:01 538 zz.bat
3 個檔案 1,199 位元組
2 個目錄 216,279,990,272 位元組可用

F:\z\4>zz
●"硬碟型號" ○ WDC WD2500AAKS-22VSA0
●"硬碟容量" ○ 30.0 GB
●"硬碟型號" ○ WDC WD2500AAKS-22VSA0
●"硬碟容量" ○ 208.5 GB
●"硬碟型號" ○ WDC WD2500KS-00MJB0
●"硬碟容量" ○ 238.5 GB

F:\z\4>
☆ 私人訊息直接刪除不再回覆 ☆ 願望 : bovuhPPjMnEfkyhggnsJdABaLFPuhXT4
謝大大提供解答 小弟感激 @@ 請問 批次檔 有辦法用動態變數?? 希望有例子可以提示小弟~
已在 Windows 2003 Server 中測試過.

456.bat

@echo off
setlocal EnableExtensions
setlocal EnableDelayedExpansion
for /l %%i in (1,1,5) do set /p Var%%i=產生 5 個變數,請輸入一些東西 :
for /l %%j in (1,1,5) do echo Var%%j=!Var%%j!

結果如下:

D:\x\z\1>dir
磁碟區 D 中的磁碟是
磁碟區序號: F80A-DC86

D:\x\z\1 的目錄

2010/04/23 下午 04:44 <DIR> .
2010/04/23 下午 04:44 <DIR> ..
2010/04/23 下午 04:46 189 456.bat
1 個檔案 189 位元組
2 個目錄 47,394,529,280 位元組可用

D:\x\z\1>456
產生 5 個變數,請輸入一些東西 :168
產生 5 個變數,請輸入一些東西 :阿凡達
產生 5 個變數,請輸入一些東西 :鋼鐵人
產生 5 個變數,請輸入一些東西 :帥哥
產生 5 個變數,請輸入一些東西 :美女
Var1=168
Var2=阿凡達
Var3=鋼鐵人
Var4=帥哥
Var5=美女
☆ 私人訊息直接刪除不再回覆 ☆ 願望 : bovuhPPjMnEfkyhggnsJdABaLFPuhXT4
謝謝 大大提供的資料 讓小弟獲益良多。
plusv wrote:
已在 Windows...(恕刪)


另請教一下~
若要用批次 顯示 某個檔案的 日期
該如何寫

譬如已經
製作了一個 備份.bat 批次檔
將 d:\*.* 壓縮成 123.zip
要怎麼讓 另一個 回復.bat 批次檔
執行前 可以顯示 123.zip 檔案的壓縮日期

thx~
測試於 Windows 7 X64 中.


F:\test>dir
磁碟區 F 中的磁碟是
磁碟區序號: 924F-61E3

F:\test 的目錄

2010/08/31 上午 12:41 <DIR> .
2010/08/31 上午 12:41 <DIR> ..
2010/07/07 下午 06:44 103,456 123.zip
1 個檔案 103,456 位元組
2 個目錄 35,454,824,448 位元組可用

F:\test>for %i in (123.zip) do @echo %~ti
2010/07/07 下午 06:44

F:\test>
☆ 私人訊息直接刪除不再回覆 ☆ 願望 : bovuhPPjMnEfkyhggnsJdABaLFPuhXT4
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?