Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Comandline je bez problémů (teda aspoň pokud jde o češtinu, azbuku nebo japonské znaky rozhodně ten…
ml1 07.09.2021 11:09
ml1
S mode con cp jsi nekolik verzi OS v minulosti.
Jan Fiala 07.09.2021 12:07
Jan Fiala
Jo taky jsem příkaz mode měl spojený s nějakými archaickými časy, ale problém to vyřešilo. (Opravdu… poslední
ml1 10.09.2021 10:39
ml1
Dá sa, ale neodporúčam commandlinom spracovávať "češtinu". Už len ten spomenutý dir > seznam.txt sp… nový
pozorovateľ 07.09.2021 20:46
pozorovateľ
Tady jde spíše vidět, proč je lepší nepoužívat diakritiku (pak se nic takového nemusí řešit). nový
Abox 07.09.2021 14:41
Abox
Není náhodou smyslem poradny najít řešení daného problému, než se vzdávat? nový
Adams1158 07.09.2021 19:58
Adams1158
Souhlasím. Rozkaz, ten zněl jasně! nový
Time 07.09.2021 20:56
Time

Comandline je bez problémů (teda aspoň pokud jde o češtinu, azbuku nebo japonské znaky rozhodně ten windowsovský nebere, to umí jen ten linuxový), jen se musí ten bat uložit se správným kódováním (latin2 nebo 1252 či co už nevim, ale to se lehce vyzkouší). A lepší než poznámkový blok je na to PSPad, který to umožní.
Já jsem něco podobného, ale složitějšího řešil před časem. Šlo o to, že mám program, který načítá názvy souborů ze standardního vstupu (stdin) a dělá s nima něco (v tomto případě výpočet nebo kontrola crc ale to je úplně jedno, jde o to, že se k němu ten název musí dostat). Program je konzolovou aplikací, takže očekává kódování windows, i když funguje na příkazovém řádku. Ten standardní vstup jsem normálně přesměrovával na soubor, kde jsem právě musel použít správné kódování češtiny. Ten soubor vznikal jako:


dir *.* /s/b > seznam.txt

ale pak jsem právě musel převést češtinu z latin do windows. Na to jsem měl jinou aplikaci, která stdin překlopila na stdout s převedenou češtinou, ale ta nefiungovala v 64 bitových windows (vůbec nechápu proč), tak jsem to provizorně dělal ručně, než to zkompiluju pro 64 bitů. Předtím to bylo jen zřetězení tří programů, poté jsem ten prostřední článek musel dělat ručně.
Po několika letech mě to přestalo bavit, tak jsem hledal jak z toho ven, aniž bych musel provádět archeologický průzkum (tu sadu aplikací jsem dělal odhadem nejpozdějc roku 2005 a bylo by snad rychlejší to udělat znova než dohledávat zdrojáky). A našel jsem. Do dávkového souboru jsem přidal příkaz mode (něco jako mode con cp 1250), kterým nastavuju češtinu na windowsovskou (to by byl jiný způsob, jak se s tím poprat - přizpůsobit příkazový řádek souboru a ne soubor příkazovému řádku). Zobrazuje se sice jako hatmatilka, ale hlavní je, že se domluví.

Jo taky jsem příkaz mode měl spojený s nějakými archaickými časy, ale problém to vyřešilo. (Opravdu si nepamatuju, kdy naposledy jsem příkaz mode předtím použil, býval běžně v autoexecu, ale to je už opravdu mnoho let. Taky jsem jím přesměrovával paralelní port na sériový kvůli tiskárně a programu, který uměl jen lpt, ale to je taky dávná minulost. Ani nevím, jak mě zrovna takové řešení napadlo.)
Schválně jsem ten dávkový soubor dohledal


mode con select=1250
dir /a-d/b/s | convypis.exe

Convypis měla být (provizorní) konzolová verze programu vypis, spíš taková provizorní náhrada, protože vývoj grafické verze se mi vymknul z ruky (ono dělat cokoliv při studiu vš je skoro nemožné, navíc jako mladý a nezkušený jsem se snažil toho tam naprat co nejvíc bez ladu a skladu). Proto i ten matoucí název, protože program vypis dělal opravdu výpis, ke kterému potom počítal kontrolní součty CRC32, případně je kontroloval, pokud už v minulosti je počítal (a řadu dalších věcí), tohle dělá jen ten výpočet nebo kontrolu souboru zadaného jména. No a toto původně provizorium používám dodnes (zvítězila jednoduchost nad přeplácaností) a vlastně až na problém s češtinou, to funguje. Ten problém jsem předtím řešil mezikrokem (program, který čte ze stdin a posílá na stdout nezměněné to, co neni diakritika, a to co je, tak převede). Pak jsem ten mezikrok, který z nějakého důvodu nešel spustit v 64 bitové verzi windows7, prostě takto nahradil (předtím jsem si dělal výpis dir do souboru a češtinu jsem převáděl v pspadu abych mohl upraveným souborem program nakrmit).

Dá sa, ale neodporúčam commandlinom spracovávať "češtinu".

Už len ten spomenutý dir > seznam.txt spotvori množstvo znakov, nedávno som bol prekvapený keď len takú obyčajnú pomlčku (em dash) skonvertoval na spojovnik/mínusko. Výsledok, file not found. Celý skript som následne prerobil do powershellu. Tam našťastie už žiadna zrada nebola.

Zpět do poradny Odpovědět na původní otázku Nahoru