Hromadné vytvoření složek s diakritikou
Ahoj, poradil by mi někdo, jak mohu hromadně vytvořit složky v OS Windows s českou diakritikou?
Našel jsem mnoho způsobů (pomocí poznámkového bloku -> .bat, .cmd, nebo PowerShellu) nicméně žádný nepodporuje český jazyk.
Těším se na Vaše návrhy
David
Vsechny zmíněné způsoby - cmd i powershell diakritiku podporují.
Aby se dalo odpovědět konkrétně, je yreba dotaz konkrétně položit.
Pokud chceš cmd připravit v poznamkovem bloku, musíš výsledný cmd uložit v OEM kódování (latin 2) nebo použít na začátku davky prikaz CHCP
Díky za odpověď, posílám ukázku.
Vytvořil jsem textový dokument viz foto, uložil jsem ho jako .cmd, spustil a vytvořily se složky bez diakritiky.
Poradil bys mi jak zmíněné OEM kódování nebo příkaz CHCP použít?
Notepad uložení jako OEM neumí, takže bys musel použít jiný editor.
Pokud chceš nechat soubor, jak je, pak na začátek přidat příkaz:
To přepne příkazový řádek na ANSI kódovou stránku a diakritika pak bude v pořádku tak, jak ji vidíš v poznámkovém bloku
Podařilo se, nicméně písmena ě,č,ř jsou stále bez diakritiky viz foto :(
To už je ale problém tvé instalace Windows. Nemáš nastavenu češtinu pro neunicode programy. Tipuji na Windows 10, které jsi dostal předinstalované s počítačem od nějakého většího výrobce.
Používají zmršený obraz, do kterého "připrdnou" lokalizaci.
Dá se to vyřešit:
Pravá myš na Start / Spustit / Control
Hodiny a oblast / Oblast
Druhá záložka - správa
Ve druhé části je pro programy nepodporující Unicode sice Česko, ale mají to blbě.
Takže změnit na třeba Angličtina (Spojené státy), potvrdit, restartovat
Pak to samé a vrátit na Česko, opět restart
Tím se systém uvede do stavu, v jakém měl správně být.
Moc děkuji za rady - teď už vše funguje perfektně!
Nemělo by to být složité. Jak vypadají zdrojová data? Stačí jen pro ukázku někam nahrát a sem dát odkaz... případně vysvětlit zde.
Díky za odpověď, výše jsem nahrál fotku s konkrétním případem.
Naklaďme si otázku: je bezpodmínečně nutné cpát do názvu souboru diakritiku?
Pokud by to nutné nebylo, nesnažil bych se to vyřešit. Díky za radu :)
OK, pardon, jen jsem se zeptal.
Co bys dělal v dobách původního MS-DOSu, když délka souboru byla 8.3, samozřejmě bez diakritiky? Teprve později jsme díky bratřím Kamenickým mohli psát nabodeníčka.
Funkční řešení zde... Není zač.
https://ulozto.cz/file/bQYA6MdStWkf/diakritika-cestina-v-nazvu-slozek-generovano-z-bat-bat
Děkuji, chápu tedy správně, že pro zobrazení diakritiky v názvu složek musím použít při psaní speciální symboly?
Nikoli. Žádné speciální znaky. Požadavek byl na diakritiku a ta tam přeci je.
V dávce je:
chcp 1250
md "- Příliš žluťoučký kůň úpěl ďábelské ódy"
md Příliš žluťoučký kůň úpěl ďábelské ódy
pause
Ale pokud bych chtěl obsah souboru upravit na svůj text, vidím v poznámkovém bloku text se speciálními znaky - viz. obr.
Jak jinak mohu obsah upravit na svůj text?
Lepe to zkusit ve Wordpadu. Ten si poradí s češtinou...
Bohužel ani WordPad ..
To není možné, vždyť je to v něm napsáno. Můžu vidět snímek se složkami vygenerovanými tou BAT dávkou?
Beze změny to funguje perfektně, jen nevím jak mohu změnit obsah textu na svůj text.
Při snaze upravit text ve WordPadu nebo Poznámkovém bloku se zobrazují speciální symboly.
Zkusím tu dávku napsat u sebe. Stačí poskytnout vstupní data do jednotlivých řádků a před každý řádek vložit např. hvězdičku. Pak to prověřit na cílovém PC...
Děkuji za rady, nakonec se podařilo problém vyřešit díky poznatku Jana Fialy. Hezký večer!
Co přesně pomohlo? Přeci jen s ohledem a úctou k času našich následovníků je vhodné to sem napsat...
Vše bylo v pořádku až na system, viz:
https://pc.poradna.net/questions/3099381-hromadne-vytvoreni-slozek-s-diakritikou#r3099432
Notepad je takový jednoduchý editor a kodovou stranku pro fonty si přebírá ze systému. Odsud si vzal ne 1250, ale 1251 (zapadni), proto správně nezobrazil žščř apod.
Ufff, přehlédl jsem to. Byl náročný den od 4:00 a pro oči jsem neviděl. Děkuji za vysvětlení.
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:
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í.
S mode con cp jsi nekolik verzi OS v minulosti.
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
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.
Tady jde spíše vidět, proč je lepší nepoužívat diakritiku (pak se nic takového nemusí řešit).
Není náhodou smyslem poradny najít řešení daného problému, než se vzdávat?
Souhlasím. Rozkaz, ten zněl jasně!