ONDE está a documentação que explica o comportamento aparentemente anormal do sinal de igual abaixo?
PASSOS PARA REPRODUZIR (em um prompt de comando):
exemplo com o ECHO:
H:\BUGS>echo abc > a-b.txt
H:\BUGS>echo cde > c=d.txt
H:\BUGS>dir
2016-03-13 19:54 6 a-b.txt
2016-03-13 19:54 12 c
H:\BUGS>type a-b.txt
abc
H:\BUGS>type c
cde =d.txt
Notas:
arquivo c :
636465203D642E7478740D0A
c d e = d . t x t
arquivo a-b.txt :
616263200D0A
a b c
NO ENTANTO (aqui o '=' torna-se parte dos nomes de arquivos válidos se eu usar aspas):
H:\BUGS>ren a-b.txt a=b.txt
The syntax of the command is incorrect.
H:\BUGS>ren a-b.txt "a=b.txt"
H:\BUGS>ren c "c=d.txt"
H:\BUGS>dir
2016-03-13 19:54 6 a=b.txt
2016-03-13 19:54 12 c=d.txt
um sinal de igual é um caractere de nome de arquivo válido.
FWIW, parece que um '=' não entre aspas tem um significado especial bizarro em uma linha de comando do DOS.
OTOH, o '=' é um caractere de nome de arquivo válido.
" Nomeando arquivos, caminhos e Namespaces "
usando o Windows 8.1
editar:
H:\BUGS>echo def > "d=e.txt"
H:\BUGS>dir
2016-03-13 20:36 6 d=e.txt
H:\BUGS>type "d=e.txt"
def
a sintaxe acima funciona.
finalizar edição.
edição # 2:
Michael Frank me ajudou a encontrar mais informações.
Suas informações permitiram que eu localizasse um artigo interessante do SO " cmd- vírgula para separar parâmetros Comparado ao espaço? "
H:\BUGS>type Frank.cmd
@echo %1/%2/%3
H:\BUGS>Frank 1 2 3
1/2/3
H:\BUGS>Frank 1=2=3
1/2/3
H:\BUGS>Frank 1;2;3
1/2/3
H:\BUGS>Frank 1,2,3
1/2/3
H:\BUGS>Frank 1/2/3
1/2/3//
acima, vários caracteres são usados como delimitadores.
quando /
foi usado como um delimitador acima, um /
extra é emitido; isso seria um bug imho.
em " cmd- comma para separar parâmetros Comparado a espaço? ", Tim Robinson escreveu" no Windows, os programas são responsável por analisar suas próprias linhas de comando. O shell analisa redirecionamentos e canais, então passa o resto da linha de comando para o programa em uma string "
BOTTOM LINE: parece que quando um delimitador é necessário, =
age como um delimitador; em alguns casos =
causa um erro sintaxe , em outros casos =
é simplesmente um sinal de igual .
final da edição # 2.