如何讓 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
....謝謝
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
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
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