3 回答

TA貢獻(xiàn)1995條經(jīng)驗(yàn) 獲得超2個(gè)贊
ini.cmd您可以使用以下命令文件()提取相關(guān)值:
@setlocal enableextensions enabledelayedexpansion
@echo off
set file=%~1
set area=[%~2]
set key=%~3
set currarea=
for /f "usebackq delims=" %%a in ("!file!") do (
set ln=%%a
if "x!ln:~0,1!"=="x[" (
set currarea=!ln!
) else (
for /f "tokens=1,2 delims==" %%b in ("!ln!") do (
set currkey=%%b
set currval=%%c
if "x!area!"=="x!currarea!" if "x!key!"=="x!currkey!" (
echo !currval!
)
)
)
)
endlocal
這是一個(gè)在運(yùn)行中的成績單記錄(我已手動縮進(jìn)輸出內(nèi)容以便于閱讀):
c:\src>type ini.ini
[SectionName]
total=4
[AnotherSectionName]
total=7
[OtherSectionName]
total=12
c:\src>ini.cmd ini.ini SectionName total
4
c:\src>ini.cmd ini.ini AnotherSectionName total
7
c:\src>ini.cmd ini.ini OtherSectionName total
12
要在另一個(gè)cmd文件中實(shí)際使用它,只需將echo %val%下面的行替換為您想對其執(zhí)行的任何操作):
for /f "delims=" %%a in ('call ini.cmd ini.ini AnotherSectionName total') do (
set val=%%a
)
echo %val%

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超6個(gè)贊
我有一個(gè)簡短的建議,可以從Windows批處理(.bat)的當(dāng)前目錄中讀取config.ini文件:
在批處理文件的末尾附近,我們粘貼以下代碼:
:ini
@for /f "tokens=2 delims==" %%a in ('find "%~1=" config.ini') do @set %~2=%%a
@goto:eof
在批處理文件開始附近,我們通過以下方式調(diào)用它:
@call:ini IniFieldName batchVarName
@echo IniFieldName is: %batchVarName%
- 3 回答
- 0 關(guān)注
- 2098 瀏覽
添加回答
舉報(bào)