2014-03-07 118 views
1

我真的不知道如何將以下文本文件的結果輸入到批處理文件中的變量中。從文本文件中選取一行並將其設置爲變量

首先我需要運行這個WMIC行。

wmic PAGEFILE get AllocatedBaseSize /Value > test.txt 

結果從test.txt的佔有6行,只有第三行具有字符,這是一個需要設置作爲我的變量。

的test.txt

AllocatedBaseSize=16328 

回答

1

這將直接設置變量而沒有中間文件

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輸出行的末尾

+0

哇,看起來像創建批處理文件很容易爲你們。 可能需要一點調整,我越來越... _AllocatedBaseSize = b_ – htan68

+1

在%b前面添加第二個% –

+0

不錯,它有效。非常感謝! – htan68

0
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 
0

爲了讓你想要的線變成一個fi勒:

wmic PAGEFILE get AllocatedBaseSize /Value | FINDSTR "Allocated" > test.txt 

要獲取文件的內容到一個變量:

set /p Base=<test.txt 
+0

再次感謝。我有_Base = AllocatedBaseSize = 16328_。我的預期變量應該只有_AllocatedBaseSize = 16328_ – htan68

0

不確定是否最好將此作爲新主題發佈。 現在我差不多完成了我的批處理腳本,現在我正在一臺目標主機上進行測試。批處理文件有分裂的問題,並從http://helloacm.com/math-example-using-windows-batch-script/發現這個好腳本。我不太瞭解它是如何工作的,但不知道如何改變最後的最終結果呼應 「回聲%0%」

例子:

  • AllocatedBaseSize = 3931
  • CurrentUsage = 94
  • PeakUsage = 94

這裏是從上面的鏈接的代碼,我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"

如果這裏已經有一個批處理文件,它也會喜歡使用。

+0

是的 - 你應該提出一個新的問題,因爲這個最新的問題與標題中的「挑選線條」問題無關。我的意思是,它不是實際上花費任何東西來提出一個新問題,是嗎? – Magoo

+0

謝謝,會做。 – htan68

相關問題