Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Zástupné znaky (*,?) v příkazové řádce

Příkaz DIR - Chci vypsat všechny soubory, které obsahují řetězec "zip" v názvu souboru. Zadám příkaz:

dir dir *zip*.* /s /b

Bohužel jsou vypsány i soubory, které řetězec "zip" v názvu souboru vůbec neobsahují, ale mají příponu .zip, např. soubor "ownerdrawn_menus.zip"

Pokud ale zadám příkaz XCOPY, např.:

xcopy *zip*.* d: /s

vše funguje jak má.

Proč se příkaz DIR chová tak nelogicky, když jinde je to správně?

OS: Windows 10 Home, Windows 7 Pro - 64bit

Předmět Autor Datum
Protože DIR neumí zpracovat tři hvězdičky.
touchwood 18.04.2017 09:07
touchwood
To je možné. Když ale jednu uberu a zadám příkaz: dir *zip*. /s který by měl vypsat všechny soubor…
Miloslav3 18.04.2017 09:20
Miloslav3
druhá hvězdička už "bere vše" edit: interní/externí platilo v dobách DOS/Win9x. U NT je to vše emul… poslední
touchwood 18.04.2017 09:59
touchwood
TAdy se zabývají implementací wildcards a problémům s tečkou. https://blogs.msdn.microsoft.com/oldne…
jirka44 18.04.2017 09:16
jirka44

To je možné. Když ale jednu uberu a zadám příkaz:

dir *zip*. /s

který by měl vypsat všechny soubory, které obsahují v názvu "zip" a jsou bez přípony, tak je výsledek stejný. Výslededk s XCOPY opět správně.

Tedy DIR nezpracuje ani 2 hvězdičky? Tuším, že počtem hvězdiček to není.

DIR, COPY ad. fungují v tomto ohledu stejně (špatně), jsou to interní příkazy OS (cmd.exe). Zatímco XCOPY je externí příkaz. Spíš než počet hvězdiček, je jinak dělaná implementace zástupných znaků v interních a externích příkazech. Bohužel, ty interní jsou v tomto ohledu asi nepoužitelné.

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