Por que o seguinte comando robocopy fica confuso? Remova a barra final do destino ("S:\Temp Backup") e funcionará conforme o esperado.
robocopy "S:\Temp\" "S:\Temp Backup\" /mir /ndl /mt /r:0
Resultado:
Isso faz com que o analisador inclua as opções como parte da string de destino. O principal motivo para perguntar é que, se você usar a conclusão de tabulação com o PowerShell, ele colocará uma barra final no diretório. O mesmo problema acontece no cmd.exe, portanto, não é uma peculiaridade do PowerShell.
Porque
\
está sendo tratado como um caractere de escape .Isso se aplica aos caminhos de origem e destino, mas somente quando usado em conjunto com uma pasta entre aspas duplas (com ou sem espaços no nome do arquivo). A string literal final (incorreta)
"
é claramente visível ao encontrar esse problema.A versão do caminho de origem deste problema reclama que um caminho de destino não foi especificado (uma vez que qualquer caminho de destino está incluído no caminho de origem com escape incorreto).
As soluções para esse problema incluem o uso de:
Sem aspas duplas (supondo que não haja espaços no caminho).
Sem rasto
\
(ex.C:\path\to\folder
)Arrasto duplo
\\
(ex.C:\path\to\folder\\
)À direita
\.
(ex.C:\path\to\folder\.
)