Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

di89

rename não funciona em arquivo .bat

Recommended Posts

Olá pessoal estou com o seguinte problema: Tenho o arquivo Transf.bat, com o script abaixo:

************************************************************************************

c:

cd \Documents and Settings\User\Meus documentos\Usuario

rename correção?da?atividade.doc correcaodaatividade.doc

************************************************************************************

 

Se eu rodar esses comandos na mão, funciona. Mas quando eu executo o .bat ele substitui o "ç" e "ã" por dois carcateres estranhos...ai não encontra o arquivo e não executa o comando. O que devo fazer para que o arquivo .bat não substitua o "ç" e "ã" ao ser executado?? Obrigada!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara no windows voce vai ter uma dor de cabeça danada com isso..

 

minha dica bota um live cd do linux e faz isso mole mole exemplo de renomeação:

 

mv doacao "doação"

 

ou

 

mv "doação" doacao

 

Ou se não quiser pode também baixar este console que um pouco melhor que o do windows

 

http://sourceforge.net/p/console/

 

e ai voce cola o código bat ali dentro, ele vai executar certinho, mas não adianta tentar executar o bat dali porque fica a mesma coisa

 

 

É bastante simples..

 

Basta definir o encode correto e setar qual charset usar antes do comando.

 

 

Exemplo, faça esse teste unitário:

 

1. Crie um novo arquivo e salve como "test.bat".

 

test.bat

chcp 65001cd "C:\caminho\pasta\"rename á.txt ão.txt

*Salve esse arquivo como UTF8 without bom (ansi utf8)

 

 

2. Crie um arquivo qualquer, vazio, com o nome "á.txt", apenas para o teste..

 

3. Abra o prompt (cmd)

 

4. Execute o arquivo test.bat..

 

 

Pronto!

O arquivo á.txt foi renomeado para ão.txt

 

 

Dica básica:

Nomenclaturas de paths contendo espaços devem ser delimitados por double quotes (aspas duplas)

 

 

Feito o teste, basta aplicar ao seu caso específico.

 

 

 

Explicação adicional em off:

 

Por default, o prompt utiliza font unicode ANSI.

Ao executar, o arquivo bat, os caracteres serão exibidos de forma corrompida, no entanto, o comando dentro do arquivo bat será executado corretamente e isso é o que interessa. O output no CMD é indiferente para esse caso.

 

Caso queira ver os caracteres pelo display do prompt, clique com o botão direito e abra "propriedades (properties)" na janela do CMD (prompt).

Escolha a fonte "Lucida Console" e clique OK.

 

No prompt, defina o charset que deseja ver.

 

O UTF8 é representado pelo código 65001, portanto, execute

 

chcp 65001

Execute o bat e verá os resultados do output sem problemas de encode.

 

 

 

Referências:

http://stackoverflow.com/questions/10764920/utf-16-on-cmd-exe

http://stackoverflow.com/questions/388490/unicode-characters-in-windows-command-line-how

 

Como pesquisar:

http://bit.ly/1hkq1VA

 

Pesquisa relacionada:

http://bit.ly/1hkqabA

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.