我真的不知道如何將以下文本文件的結果輸入到批處理文件中的變量中。從文本文件中選取一行並將其設置爲變量
首先我需要運行這個WMIC行。
wmic PAGEFILE get AllocatedBaseSize /Value > test.txt
結果從test.txt的佔有6行,只有第三行具有字符,這是一個需要設置作爲我的變量。
的test.txt
AllocatedBaseSize=16328
我真的不知道如何將以下文本文件的結果輸入到批處理文件中的變量中。從文本文件中選取一行並將其設置爲變量
首先我需要運行這個WMIC行。
wmic PAGEFILE get AllocatedBaseSize /Value > test.txt
結果從test.txt的佔有6行,只有第三行具有字符,這是一個需要設置作爲我的變量。
的test.txt
AllocatedBaseSize=16328
這將直接設置變量而沒有中間文件
for /f "tokens=*" %%a in (
'wmic PAGEFILE get AllocatedBaseSize /value^|find "="'
) do for %%b in (%%a) do set "AllocatedBaseSize=%%b"
echo %AllocatedBaseSize%
雙for
環是消除額外的CR(0x0D)字符和WMIC輸出行的末尾
wmic PAGEFILE get AllocatedBaseSize /Value |find "=" > test.txt
另一種方法對皮膚的貓(不創建一個文件)的內容:
for /f %%i in ('wmic PAGEFILE get AllocatedBaseSize ^|findstr "." ^|find /v "Allocated"') do set base=%%i
或在這種情況下,即使easyier:
for /f %i in ('wmic PAGEFILE get AllocatedBaseSize ^|findstr "[0-9]"') do set as=%i
爲了讓你想要的線變成一個fi勒:
wmic PAGEFILE get AllocatedBaseSize /Value | FINDSTR "Allocated" > test.txt
要獲取文件的內容到一個變量:
set /p Base=<test.txt
再次感謝。我有_Base = AllocatedBaseSize = 16328_。我的預期變量應該只有_AllocatedBaseSize = 16328_ – htan68
不確定是否最好將此作爲新主題發佈。 現在我差不多完成了我的批處理腳本,現在我正在一臺目標主機上進行測試。批處理文件有分裂的問題,並從http://helloacm.com/math-example-using-windows-batch-script/發現這個好腳本。我不太瞭解它是如何工作的,但不知道如何改變最後的最終結果呼應 「回聲%0%」
例子:
這裏是從上面的鏈接的代碼,我C值變爲3:
setlocal
set /a a=%CurrentUsage%
set /a b=%AllocatedBaseSize%
set /a c=3
set /a d=a/b
set o=%a%/%b%=%d%.
:work
set /a a=(a-d*b)*10
if "%a%"=="0" goto clean_up
set /a d=a/b
set /a c=c-1
if "%c%"=="0" goto clean_up
set o=%o%%d%
goto work
:clean_up
echo %o%
endlocal
現在的問題是腳本呼應「三千九百三十一分之九十六= 0.02」,我需要顯示的結果爲「CurrentUsagePct = 0.02」,甚至如果我可以將其顯示爲「更好的」 CurrentUsagePct = 2.44"
如果這裏已經有一個批處理文件,它也會喜歡使用。
哇,看起來像創建批處理文件很容易爲你們。 可能需要一點調整,我越來越... _AllocatedBaseSize = b_ – htan68
在%b前面添加第二個% –
不錯,它有效。非常感謝! – htan68