Spuštění dávkového souboru
Dávkový soubor
V dávkovém souboru BAT mám u príkazu RD jméno s mezerou a když to dám do uvozovek, háže to chybu (Systém nemůže nalézt uvedený soubor). Bez mezer to funguje! Název ale musí být s mezerami. Dlouhé názvy se přece dávají do uvozovek - tak proč to nefunguje?
Příklad: RD /S /Q "c:\toto smaž"
Celé je na XP. Zkoušel jsem i příponu cmd se stejnými výsledky. Kde je zakopaný pes? Poraďte prosím.
Zkuste nahradit mezeru podtržítkem _
To přece nemůže fungovat mezera a _ je jiný znak. Název adresáře je s mezerou.
Mně to funguje normálně, adresář se smaže... WinXP PRO SP
Kde by mohla být chyba v systému? Nevíte?
To netuším, opravdu tam je ten adresář?
Uvozovky dej až na jméno souboru:
RD /S /Q c:\"toto smaž"
Nejede, mám asi po..... W XP.
Mezera není dlouhý název. Dlouhý název by byl třeba: c:\toto_je_adresar_s_dlouhym_nazvem
místo mezer podtržítka, jak psal kolega.
Dělat vše malými, bez diakritiky a bez mezer a nejsou tyto problémy.
Hoď sem obsah toho bat a napiš, co od toho chceš, jistě ti tu někdo napíše něco konkrétního.
Potřebuju při ukončení XP pomocí skriptu vymazat dočasný adresář, který se nachází obvykle c:\Documents and Settings\..... a tam jsou právě ty mezery!
Obsah Bat jsou 2 příkazy RD přesně jak jsem psal v úvodním příspěvku, akorát cesta je jiná.
Pokud se pamatuju ještě z dávných dob, tak neprázdný adresář nevymažeš
DOS příkazem, aniž bys napřed nevymazal jeho obsah. Pokud se ti tam tvoří
soubory s různými názvy, tak to asi nepůjde. Ale roky pokročily
a třeba to jde, rád se poučím. Lomítka jsem používal vytočená výhradně takhle: \
Mi jde ve W2000 přes cmd a uvozovky vymazat všechno.
Vlastnosti Dos příkazů se v Windows vylepšovaly.
Toto je nápověda z XP:
RMDIR [/S] [/Q] [jednotka:]cesta
RD [/S] [/Q] [jednotka:]cesta
/S Odstraní všechny adresáře a soubory v uvedeném adresáři
včetně adresáře samotného. Slouží pro odstranění stromu
adresářů.
/Q Nevyžaduje potvrzení při odstraňování stromu adresářů pomocí /S
proč mazat celý adresář, když by stačilo vymazat jen jeho obsah? DEL *.* c:\temp\ (smaže vše v tempu). Také už si to moc nepamatuji, snad nepíšu špatnou syntaxi, jsem na to expert
Určitě by to šlo, problém je však s názvem s mezerou - c:\Documents and Settings\.... slovo za mezerou je další parametr.
No jo, jsem téměř XP nepolíbený.
Tie uvozovky su tam na to, aby si mohol v DOSe napisat nazov adresara dlhsi ako 8 znakov, v celku. Skus miesto "toto zmaz" napisat "toto z~1"
samozrejme bez uzovoziek
Jakmile se dá mezera v názvu tak to příkaz chápe jako další parametr a RD má definovaný jeden. Proto tam musí být ty uvozovky.
Stále mi to nefunguje. Bude chyba někde v nastavení. Před reinstalací jsem to kdysi nainstaloval a fungovalo to, nejsem si vědom, že bych v nastavení něco měnil. Vím ale, že v práci na W2000 mi to taky nechodilo a v příspěvku výše někdo uvádí, že mu to chodí.
No a co ten
del *.* c:\"Documents and Settings\mirek\temp\"
rd c:\"Documents and Settings\mirek\temp\"
?
Když už, tak takhle:
del c:\"Documents and Settings\mirek\temp\*.*"
Stále hlásí: Systém nemůže nalézt uvedený soubor.
Nojo vlastně. Má hlava děravá, berlu Mrazilku jsem doma zanechal...
Uvozovky musejí být úplně na začátku i na konci protože např. když vyvolám Vlastnosti na ikoně na ploše je cíl např. takto: "C:\Program Files\Foxit Software\Foxit Reader\Foxit Reader.exe"
Príklad, ktorý si napísal, je správne a mal by fungovať.
- Obsahuje cesta diakritiku?
- Priamo z príkazového riadka to funguje?
Ak potrebuješ vymazať niečo z windowsáckeho temp-adresára, tak ti asi bude stačiť použiť premennú prostredia TMP alebo TEMP.
Teď jsem na to přišel problém je s češtinou když vypadá příkaz RD /S /Q "c:\toto smaz" nebo del "c:\toto smaz\*.*" chodí to OK.
Ach to čeština!!!!!!!!!!!!! Oč to má Bill jednodušší!!!!!!!!!!
Keď vytvoríš ten dávkový súbor pomocou príkazu "copy con", tak nebudeš mať problém s diakritikou.
Skláním před Vámi! Konečně jeden příspěvek od člověka který UMÍ. Udělal jsem to dle návodu a chodí to i s češtinou!!!!!!!!!!!!! To ž ve slově smaž se překódovalo jako §. Vlastně je to jasné Windows (CP1250) má jiné kódování než DOS (CP852). Kdybych našel tabulku tak by to asi fungovalo taky.
DÍKY! DÍKY!
Díky všem za pomoc!