Pouze tento týden sleva až 80 % na e-learning týkající se C# .NET. Zároveň využij akci až 30 % zdarma při nákupu e-learningu - Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: FreeDOS - Vyjmutí textu a uložení do proměnné

Aktivity
Avatar
Lukáš Navrátil:5.4.2018 9:32

Dobrý den,

rád bych se dotázal zkušenejších na radu. Jedná se o FreeDOS. Snažím se uložit jako proměnnou část textu, který generuje exe soubor AMIDEDOS.

Tento soubor po zadání příkazu amidedos.exe /bs vypíše sériové číslo základní desky v tomto formátu:

Initializing the SMBIOS interface. Please wait a moment......
Name R/W Status Information
--------------------------- --- ------ ----------------------------------
(/BS)Baseboard Serial number R Done "VM17CS008909"

Mým cílem je uložit výše vypsané sériové číslo jako proměnnou.

Napadlo mě to udělat pomocí TXT souboru.

Takže takto:
amidedos.exe /bs > ex.txt
set /p sn=<ex.txt
echo %sn%

Jenže zde nastává problém. Proměnná je, jak to vypadá omezená určitou délkou a zkopíruje se tedy pouze:
Initializing the SMBIOS interface. Please wait a moment......

Rád bych se proto zeptal, zda ve FreeDOS existuje nějaká možnost, jak si zvolit v textovém souboru, kterou část chci zkopírovat například podle délky znaků nebo podle toho, že vypsaná hodnota je vždy v uvozovkách.
Pokud má někdo ještě lepší nápad, jak to provést bez TXT souboru, budu jedině rád za jakoukoli pomoc!

Díky moc.

Omlouvám se, pokud to nespadá pod .NET, ale myslím, že to má k tomu blízko.

 
Odpovědět
5.4.2018 9:32
Avatar
plelovsky
Člen
Avatar
plelovsky:9.4.2018 14:12

Ve Windows by to šlo pomocí příkazu FOR. FreeDOS bohužel nemá potřebná rozšíření příkazu FOR. Zkus použít awk.

 
Nahoru Odpovědět
9.4.2018 14:12
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Odpovídá na plelovsky
Lukáš Navrátil:9.4.2018 15:24

Máš pravdu. Bohužel je FreeDOS výrazně omezen a nenabízí příkazy, které jsem potřeboval.

Proto jsem to napsal pro CMD a to takto:

amidedos /bs | find /I "Done" >bs.txt
set /p sn=<C:\PRO\FRU-DMI\bs.txt
echo %bs:~43,12%
IPMI.exe -fru bs %sn:~43,12%
set /p chasis=Scan the chasis number:
IPMI.exe -fru cs %chasis%
amidedos /cs %chasis%
del C:\PRO\FRU-DMI\bs.txt

Třeba někdo bude řešit stejnou situaci a pomůže mu to :)

 
Nahoru Odpovědět
9.4.2018 15:24
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.