CMD - parę pytań.

0

Witam. Chciałem pobawić się trochę w CMD, i natrafiłem na mały problem. Chciałem napisać odpowiednik tego programu w PowerShellu, ale w cmd:

    Try {
            $HighPerf = powercfg -l | %{if($_.contains("Wysoka wydajno†")) {$_.split()[3]}}
            $LowPerf = powercfg -l | %{if($_.contains("Oszcz©dzanie energii")) {$_.split()[3]}}
            $CurrPlan = $(powercfg -getactivescheme).split()[3]
            if ($CurrPlan -ne $HighPerf) { powercfg -setactive $HighPerf}
            else { powercfg -setactive $LowPerf}
            
        } 
    Catch { Write-Warning -Message "Jakiś cholerny skrzat namieszał;/" }

Jednak nie wiem jak przypisać wartosci wyników polecen do zmiennych:

SET H1= 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
SET L1= a1841308-3541-4fab-bc81-f71556f20b4a
SET HighPerf= Power Scheme GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c  (Wysoka wydajność) 
SET LowPerf= Power Scheme GUID: a1841308-3541-4fab-bc81-f71556f20b4a  (Oszczędzanie energii) 
SET CurrPlan= powercfg /getactivescheme // tutaj przypisuje tylko tego stringa po znaku równa się.

następny problem to warunek if

IF %CurrPlan% EQU %HighPerf% powercfg /S %L1% 
ELSE powercfg /S %H1%

Prosze wskażcie błędy w tych wypocinach proszę. Warunek if w ogóle nie działa.
Pozdrawiam

0

Spróbuj %% zamiast %, wydaje mi się, że przy uruchomieniu z palca powinno pomóc

0
C:\Users\allst>SET HighPlan=%powercfg /getactivescheme%

C:\Users\allst>Echo %HighPlan%
%powercfg /getactivescheme

Nadal drukuje tylko stringa komendy

0
for /f "delims=" %a in ('powercfg /getactivescheme') do @set CurrPlan=%a

SET H1= 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
SET L1= a1841308-3541-4fab-bc81-f71556f20b4a
SET HighPerf= Power Scheme GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c  (Wysoka wydajność) 
SET LowPerf= Power Scheme GUID: a1841308-3541-4fab-bc81-f71556f20b4a  (Oszczędzanie energii) 

IF %CurrPlan% == %HighPerf% (powercfg /SETACTIVE %L1%) ELSE (powercfg /SETACTIVE %H1%)

Ok rozwiązałem problem przypisania do zmiennej, jednak instrukcja warunkowa nadal kuleje;/

1 użytkowników online, w tym zalogowanych: 0, gości: 1