.Bat xcopy - caracteres especiais


0

este é o código do meu .batarquivo:

@echo off
xcopy "C:\Users\Administrator\věc" "C:\věc"  /e /i /h
echo Done
pause

No entanto ele diz: File not found - výc. Ver ěchar alterado paraý

Por que é tão? obrigado

Editar: estou tentando copiar o diretório, não um arquivo


Não sei como você está obtendo resultados. Copiei o seu texto no bloco de notas e pressione Salvar. Existe uma opção para localização. Se você selecionar ANSI, ě se tornará e. Se você selecionar Unicode ou UTF-8, o cmd lançará lixo. por exemplo: 'C: \ Users \ ben> ∩╗┐ @ echo off' ∩╗┐ @ echo 'não é reconhecido como um comando interno ou externo, programa operável ou arquivo em lotes. "etc, etc.
Ben L

bem na minha máquina, torna-se ý... Pode ser por causa de algumas configurações locais? Eu não sei, no entanto, ele realmente não importa se é ýoue
simPod

Respostas:


1

Uma opção é usar um caractere curinga para seus locais:

xcopy "C:\Users\Administrator\v*c" "C:\v*c"  /e /i /h

Pode não ser o ideal, mas funcionará sob algumas condições.

  1. Nenhuma outra pasta pode corresponder à expressão 'v (qualquer caractere) c' (como vehdgthc), que é verdadeira no src e no dest.

  2. O diretório c já existe para o destino.


Sua resposta é ótima, pois também indica claramente quaisquer falhas. +1
Dave

Bem, agora ele faz isso:File not found - v*c
simPod 14/05

Isso é estranho - ele deve estar procurando uma pasta. Parece que, embora usando o curinga, o XCOPY está lendo o carácter especial para que o mesmo problema persiste
Dave

Tente não usar "" com caracteres curinga. Já faz um tempo desde que eu não uso o Windows, mas acho que ele tem o mesmo efeito de '' na maioria dos sistemas operacionais e linguagens de programação.
21413 Alex

1

O problema está na interpretação do arquivo bat. Eu gero comandos que funcionam no modo de linha de comando, mas não funcionam no arquivo bat. Não é culpa de Ansi ou unicodes, pois eu posso copiar e colar no interpretador de comandos e funciona muito bem. Infelizmente, as regras para interpretação de arquivos bat parecem não estar claramente documentadas.


Não está claro se você está explicando definitivamente por que isso não funcionará, especulando por que isso não funcionará ou apenas fazendo observações gerais. O primeiro caso seria qualificado como resposta se você pudesse esclarecê-lo e torná-lo mais definitivo. Os outros dois casos não atendem à definição de resposta na SU.
precisa saber é o seguinte

0

Isso ocorre devido ao unicode e mais sobre como o caractere especial é exibido. Os caracteres Unicode serão exibidos de maneira diferente no Bloco de notas e no Wordpad, por exemplo.

No seu caso, parece que esse caractere especial está confundindo o comando XCopy e fazendo com que ele pense que é um arquivo e não uma pasta.

Se for uma opção, altere para ee tente novamente. Aprecio que não é o ideal, pois você precisa criar uma nova palavra, mas isso deve funcionar. Se isso acontecer, você sabe que o problema está com o personagem; caso contrário, obviamente você precisará investigar mais.

Editar

Não posso testar isso, mas você pode tentar o Robocopy (não sabe ao certo o SO que está usando)

robocopy" C:\Users\Administrator\věc" "C:\věc"

EDIT 2

Ou, o problema é que sua máquina não está mostrando extensões de arquivo , então você pensa que está věc. Não é provável! Seu arquivo deve ter extensões de nome e ponto

POR EXEMPLO

věc.txt or věc.pdf

Bem, não quero alterar o nome do meu arquivo, mas é o problema desse personagem, com certeza. O uso de curinga é uma solução elegante, mas ainda é uma solução alternativa, embora eu prefira uma solução limpa. Obrigado por suas respostas de qualquer maneira!
amigos estão dizendo sobre simpod

@simPod, você pode tentar usar o Robocopy (se aplicável) e ver se o problema persiste?
Dave

Usando Robocopy:ERROR : Invalid Parameter #1 : "C:\Users\Administrator\v*c"
simPod

@simPod - veja minha Edição 2
Dave

Viu, veja meu Edit;)
simPod

0

No seu editor, certifique-se de usar a codificação Ansi, não o OEM.


Estou usando ANSI, que é o bloco de notas
simPod

Qual codificação ANSI padrão você definiu no Windows?
Martin Prikryl

Onde posso descobrir?
simPod

Depende da sua versão do Windows. Por exemplo no XP, é Painel de controle> Opções regionais e de idioma> guia Avançado> Idioma para programas não-Unicode
Martin Prikryl
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.