Dávka Volné místo na disku - jak zlikvidovat oddělovače

...

Moderátor: Mods_senior

Uživatelský avatar
Jan Pašek
Tvůrce článků
Level 6.5
Level 6.5
Příspěvky: 3701
Registrován: leden 06
Bydliště: Plzeň
Pohlaví: Muž
Stav:
Offline

Dávka Volné místo na disku - jak zlikvidovat oddělovače

Příspěvekod Jan Pašek » 08 dub 2010 08:46

Pánové pokouším se napsat instalační dávku (tedy soubor *.bat), který před instalací zjistí volné místo na disku. abych mohl počítat za pomoci příkazu set potřebuji se zbavit odělovačů mezi jednotlivými řády a bude tu zřejmě problém se zobrazením oddělovače versus kodování LatinII a kamenických.
příklad dávky tak jak ji mám nyní rozepsanou abych mohl popisovat co vlastně dělám a chci

Kód: Vybrat vše

@echo off
echo.
echo  Instaler zjištuje volné místo na Vámi zadaném disku C:
dir C: | find /I "Volných bajtů" > Tmp.txt
for /F "eol=- tokens=5" %%i in (Tmp.txt) do set Key=%%i
echo %Key% > Tmp.txt
rem zde nevým jaký odělovač do příkazu delims aby se to rozebralo na tokens a mohl jsem jednotlivé tokens sloučit již bez odělovačů
for /F "delims= " %%a in (Tmp.txt) do (
echo 1 = %%a
echo 2 = %%b
echo 3 = %%c
echo 4 = %%d
echo 5 = %%e
echo 6 = %%f
echo 7 = %%g
echo 8 = %%h
echo 9 = %%i
echo 10 = %%j
)
echo.
echo  Na disku je volných %Key% bajtů

pause



Jedná se o příkaz delims, který je sočástí příkazu FOR pořád nemohu vyspekulovat jaký odělovač tam zapsat aby se mi výsledek rozdělil na tokens bez odělovačů a mohl jsem jednotlivé tokeny sloučit k dalšímu výpočtu pomocí příkazu set.

PS za každou pomoc budu vděčný tohle trochu vyšší dívčí tak jsem zvědav kdo se najde jestli vůbec někdo.
Jendův rozcestník (Odkazy, které jsem měl dříve v podpisu najdete v mém rozcestníku.) Jendovy novinky - Co je pro Vás odemne nového Pokud potřebujete mermomocí vědět na čem páchám PC kriminalitu sestavy jsou v profilu.

Reklama
Uživatelský avatar
Jan Pašek
Tvůrce článků
Level 6.5
Level 6.5
Příspěvky: 3701
Registrován: leden 06
Bydliště: Plzeň
Pohlaví: Muž
Stav:
Offline

Re: Dávka Volné místo na disku - jak zlikvidovat oddělovače

Příspěvekod Jan Pašek » 09 dub 2010 20:14

Tak dalo se předpokládat že se nikdo neozve nezbylo nic jiného než internet nápověda k příkazům a metoda pokus omyl.
No a povedlo se..v Code dávka která zjistí volnou kapacitu disku a na základě toho spustí nebo ukončí instalaci.

Kód: Vybrat vše

@echo off
chcp 1250 > nul
rem dir c: | find /I "Volnřch bajt" > Tmp.txt
for /F "tokens=5-9* delims=á " %%a in (Tmp.txt) do (
if not "%%a"=="" if "%%b"=="" set Free=0
if not "%%a"=="" if not "%%b"=="" if "%%c"=="" set Free=0
if not "%%a"=="" if not "%%b"=="" if not "%%c"=="" if "%%d"=="" set Free=%%a%
if not "%%a"=="" if not "%%b"=="" if not "%%c"=="" if not "%%d"=="" if "%%e"=="" set Free=%%a%%b
if not "%%e"=="" set Free=%%a%%b%%c
echo.
echo  Na disku c: je %%a %%b %%c %%d %%e bajtu volnych
)
chcp 852 > nul
echo  To je přibližně %Free% MBajtu.
echo  Pro instalaci je potřeba zhruba 10 MBajtu
set /a Free=%Free%-10
echo  Zbývající volná kapacita disku po instalaci činí přibližně %Free% MBajt[u]
del Tmp.txt
If %Free% GTR 0 echo  Spouštím instalaci!
If %Free% LSS 1 echo  STOP!
pause

Bylo třeba vypořádat se se věma zásadními problémy:
1) Příkaz DIR vypisuje volné místo v bajtech a jednotlivé řády číslovky odděluje znakem mě se vždycky mezi trojicí čísel ukazovalo znak podobný "a" . Pokud jsem ale zadal "a" jako odělovač do příkazu delims (příkaz mění odělovače ze standardní mezera tabelátor na vámi zadané a je součástí příkazu FOR) k rozdělení jednotlivých řádů číslovky do tokens "a" až "e" nedošlo tzn. měl jsem zadán chybný odělovač. Když jsem postupně zkusil takřka všechny znaky ASCII2 tabulky, napadlo mne změnit celou znakovou sadu. příkaz k výměně znakové sady je "CHCP " a znaková sada 1250 je znaková sada Windows pro střední Evropu. Chvála pánu bohu při ukládání se odělovače mezi řády v číslici změnily na prosté dlouhé "á" a konečně se mi povedlo rozložit číslo po řádech.

2)Druhý problém příkaz SET nedokáže počítat s číslem větším jak 999 999 999 bylo třeba zaokrouhlit na MBajty. Mno popral jsem se s tím tak trochu lišácky vypustil jsem z čísla posledních 6 číslic jen mi chvíli trvalo než jsem přišel na sadu podmínek (příkaz If), která to zajistí protože číslo se plní od tokenu "a" a vy vždy musíte odebrat poslední dva plné tokeny.

Pokud chcete ptejte se , když vám nebude něco jasné pokud budu vědět odpovím. Předpokládám určitou vaší znalost tvorby dávkových souborů a tak jsem se soustředil pouze na popis problémů se kterými sem se musel poprat.
Jendův rozcestník (Odkazy, které jsem měl dříve v podpisu najdete v mém rozcestníku.) Jendovy novinky - Co je pro Vás odemne nového Pokud potřebujete mermomocí vědět na čem páchám PC kriminalitu sestavy jsou v profilu.

Uživatelský avatar
El Diablo
Moderátor
Elite Level 11.5
Elite Level 11.5
Příspěvky: 14099
Registrován: červen 06
Bydliště: In Hell
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Dávka Volné místo na disku - jak zlikvidovat oddělovače

Příspěvekod El Diablo » 09 dub 2010 21:06

A k čemu je to dobré?
RTFM!!! UBCD - Ultimate Boot CD Zkusili jste to vypnout a zapnout? Aneb z PIO do DMA a zpět... :) * Jak provést Clear CMOS
Kdo se moc ptá, málo googlí. Doporučený freeware

i5 3570K, ASRock Z77 Extreme, 16GB Corsair, 120GB SSD Kingston +2TB Samsung, Gigabyte Radeon HD7870, Sharkoon ReX8VE, XL-747H

Uživatelský avatar
Jan Pašek
Tvůrce článků
Level 6.5
Level 6.5
Příspěvky: 3701
Registrován: leden 06
Bydliště: Plzeň
Pohlaví: Muž
Stav:
Offline

Re: Dávka Volné místo na disku - jak zlikvidovat oddělovače

Příspěvekod Jan Pašek » 09 dub 2010 21:50

to El Diablo K tomuhle
Jendův rozcestník (Odkazy, které jsem měl dříve v podpisu najdete v mém rozcestníku.) Jendovy novinky - Co je pro Vás odemne nového Pokud potřebujete mermomocí vědět na čem páchám PC kriminalitu sestavy jsou v profilu.

Uživatelský avatar
Pic
Moderátor
Guru Level 13
Guru Level 13
Příspěvky: 23292
Registrován: září 06
Bydliště: Východní Čechy
Pohlaví: Muž
Stav:
Offline

Re: Dávka Volné místo na disku - jak zlikvidovat oddělovače

Příspěvekod Pic » 10 dub 2010 00:16

Také nějak nechápu na co to je. Volné místo na disku zjistím jednodušeji.
Přečti si pravidla tohoto fóra! Přečetl jsi si nejprve manuál? Piš tak, abychom Ti rozuměli! Na SZ neodpovídám na požadavky řešení Vašich problémů s PC!
Nic není dokonalé, ani člověk!

Uživatelský avatar
Jan Pašek
Tvůrce článků
Level 6.5
Level 6.5
Příspěvky: 3701
Registrován: leden 06
Bydliště: Plzeň
Pohlaví: Muž
Stav:
Offline

Re: Dávka Volné místo na disku - jak zlikvidovat oddělovače

Příspěvekod Jan Pašek » 10 dub 2010 12:19

To PIC tak sem s tím ne jen jedna cesta vede do Říma ale potřebuji aby se na základě výsledku dalo pomocí podmínky rozhodnout zdali je na disku dostatek místa pro instalaci.
Tzn. zdali dávku ukončit nebo pokračovat např. vkopírování souborů.

No a ještě zpět k otázce kčemu to vlastně je. Popsaná část bude součástí instalační dávky ASuite CZ+.

A pokud by to ani takto nestačilo zde je citace z úvodu této dávky:
echo Vámi spuštěný dávkový soubor vám pomůže přemístit soubory ASuite na Váš
echo přenosný disk a to včetně dolňků, pokud si to budete přát, které jsou zatím
echo dostupné pouze pro Českou lokaci tohoto SW.
echo Jedním z doplňků je například instalace vlastního vzledu ASuite.
echo Jsou doplněny i variace na původně nabízené vzhledy a galerie osobních
echo obrázků.
echo Dále nabízím rozšířený přístup k nápovědě a také podrobnou Českou nápovědu.
echo Do ASuite byla také vsunuta složka obsahující utilitku Eject_USB.exe ,
echo která společně s přiloženým dávkovým souborem Eject_USB.bat zařídí bezpečné
echo odebrání vašeho přenosného disku z PC.
echo Po nastavení ASuite budete mít možnost za pomoci dalšího dávkového souboru
echo smazat nepotřebné soubory.

nebo ještě podrobněji k původnímu programu sem dodělal vlastní přídavky a potřebuji je do něj integrovat na přesná místa v adresářové struktuře programu a protože z programování umím alespoň trochu slušně psát dávky beru právě dávku jako pomocníka pro instalaci.

Jěště není jasné na co potřebuji výše popsanou funkci v instalační dávce? Mno ptejte se rád vysvětlím.
Jendův rozcestník (Odkazy, které jsem měl dříve v podpisu najdete v mém rozcestníku.) Jendovy novinky - Co je pro Vás odemne nového Pokud potřebujete mermomocí vědět na čem páchám PC kriminalitu sestavy jsou v profilu.

Uživatelský avatar
skunkicz
Level 3.5
Level 3.5
Příspěvky: 653
Registrován: prosinec 09
Pohlaví: Muž
Stav:
Offline

Re: Dávka Volné místo na disku - jak zlikvidovat oddělovače

Příspěvekod skunkicz » 10 dub 2010 12:48

zlatej InstallSHield
Pracuji na (svobodném) operačním systému (jako koníček, nebude to velké a profesionální jako GNU) pro klony 386(486) AT.
- tohle napsal do usenetové diskuse Linus Torvalds dne 17. září 1991

NB: Intel Pentium DC, 3GB RAM, Ati Mobility Radeon HD4570, 250GB HDD - Windows 7 + Archlinux

Uživatelský avatar
Jan Pašek
Tvůrce článků
Level 6.5
Level 6.5
Příspěvky: 3701
Registrován: leden 06
Bydliště: Plzeň
Pohlaví: Muž
Stav:
Offline

Re: Dávka Volné místo na disku - jak zlikvidovat oddělovače

Příspěvekod Jan Pašek » 10 dub 2010 13:06

Mno InstallSHield je možná zlatej ale alespoň z mého pohledu pokud má přenosná aplikace instalátor a nemá koncovku paf zdaleka se mu vyhnu a raději hledám pouze zip verzi k rozbalení protože si nikdy nemohu být jistý kam všude bude instalátor přistupovat.

Další můj názor do dávky než jí spustíš se může podívat každý a snad se moc neutnu když budu tvrdit že alespoň pro nás starší bude alespoň trochu srozumitelné jaké funkce má dávka provádět.

Takže dle mého názoru potencionální uživatel si může dopředu než dávku spustí prověřit co chce na svém PC spustit a zdali vůbec chce dávku užít.

Další psaním dávky strávím asi tak stejně času jako kdybych se seznamoval z InstallSHield ale dávka má ještě jedno kouzlo alespoň pro mne a tj. Tréning logického myšlení. "Blbá není ta mašina jen jsem jí to blbě podal a ona funguje podle mého chybného podání"
Jendův rozcestník (Odkazy, které jsem měl dříve v podpisu najdete v mém rozcestníku.) Jendovy novinky - Co je pro Vás odemne nového Pokud potřebujete mermomocí vědět na čem páchám PC kriminalitu sestavy jsou v profilu.


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Menší ssd naklonované do většího - nelze rozšířit kapacitu C: o nealokované místo na disku Příloha(y)
    od jxdm » 21 srp 2023 16:57 » v Problémy s hardwarem
    4
    838
    od jxdm Zobrazit poslední příspěvek
    21 srp 2023 17:37
  • Misto zvuku 5.1 jen 2.0
    od kuře » 19 říj 2023 14:32 » v Windows 11, 10, 8...
    7
    1650
    od richchie Zobrazit poslední příspěvek
    24 říj 2023 09:25
  • 100% využitie disku Příloha(y)
    od krakenus600 » 10 zář 2023 19:47 » v Vše ostatní (sw)
    9
    2891
    od krakenus600 Zobrazit poslední příspěvek
    11 zář 2023 11:26
  • Automatizování zálohy USB disku
    od Martab » 31 bře 2024 11:17 » v Vše ostatní (sw)
    15
    1793
    od Martab Zobrazit poslední příspěvek
    01 dub 2024 18:40
  • Jak zobrazit soubory z ostatních disků.
    od xDwery » 24 kvě 2023 06:05 » v Problémy s hardwarem
    1
    617
    od ITCrowd Zobrazit poslední příspěvek
    24 kvě 2023 06:26

Zpět na “Vše ostatní (sw)”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 15 hostů