Czasami niezdolność powłoki cmd do rozwinięcia ścieżek symboli wieloznacznych może być naprawdę niedogodnością. Musiałem przekazać programowi 100 plików z katalogu i nie mogłem wpisać * .ext. Zamiast tego użyłem „ls” mingw do zrzucenia listy do pliku, a następnie zastąpiłem znaki nowej linii spacjami, skopiowałem i wkleiłem do cmd. Całkiem koszmar.
Podejrzewam, że odpowiedź brzmi „nie”, ale czy ktoś sobie z tym poradził lub wymyślił sposób, aby to ułatwić?
I suspect the answer will be no, but has anyone dealt with this or come up with any way to make this easier?
W rzeczywistości mam odwrotny problem, próbuję wymyślić sposób, aby interpreter poleceń traktował listę jako ciągi znaków i zapobiegał interpretowaniu ich jako symboli wieloznacznych. Na przykład, for %i in (foobar baz really?) do @echo %i
będzie traktować ostatnią pozycję ( really?
) jako zamiennika nazwy pliku, a pominąć, jeśli nie ma żadnych plików o nazwach really1
, reallyz
itp ☹
?
nie jest znakiem prawnym dla nazw plików w systemie plików Windows. Postać można interpretować tylko jako symbol wieloznaczny. Zobacz Nazewnictwo plików, ścieżek i przestrzeni nazw w MSDN i Używanie symboli wieloznacznych w TechNet.