cmd.exe comportamento estranho. Não reconhecendo mais a área de trabalho

0

Eu estava tentando adicionar um comando tracert a um arquivo .bat.

No cmd.exe eu estava escrevendo:

tracert 111.111.111.111 > desktop\tracert.txt

e correu bem. Eu criei um arquivo bat assim:

::@echo off
Cd C:\
cls
echo %DATE%
echo %TIME%
set datetimef=%date:~-4%_%date:~3,2%_%date:~0,2%__%time:~0,2%_%time:~3,2%_%time:~6,2%
echo %datetimef%
::2013_04_20__13_01_47
::tracert 111.111.111.111 > desktop\Tracert_IP1_%datetimef%.txt
tracert 111.111.111.111 > desktop\tracert.txt

A idéia é adicionar os dados ao nome do arquivo, eu também gostaria de escrevê-lo dentro do tracert.txt, mas eu não sei como.

Resultado do código:

C:\>echo 20/04/2013
20/04/2013

C:\>echo 14:18:12,44
14:18:12,44

C:\>set datetimef=2013_04_20__14_18_12

C:\>echo 2013_04_20__14_18_12
2013_04_20__14_18_12

**C:\>tracert 111.111.111.111  1>desktop\tracert.txt**
**The system cannot find the path specified**

Por que é adicionar "1" antes do ">" e removendo o espaço entre ">" e "desktop"?

Enfim, eu tentei executar o comando tracert novamente diretamente no cmd, mas agora ele está me dando a mesma mensagem de erro que o arquivo bat: The system cannot find the path specified

Editar 1: Bem, o problema com o caminho não encontrar é porque eu mudei o caminho cmd usando o comando "cd", que a pasta desktop não foi encontrada! Eu estou envergonhado! Desculpem rapazes.. Obrigado pelos replays sobre os "1" e com os espaços.

    
por Pedro77 20.04.2013 / 19:31

3 respostas

1

O lugar que você conhece como desktop é uma subpasta do seu perfil de usuário com o mesmo nome. Se o seu arquivo de lote estiver armazenado em sua área de trabalho, simplesmente remova a parte desktop\ da saída. Quando você executa cmd , seu diretório base é seu diretório de perfil de usuário root que tem sua pasta desktop abaixo disso. Se você criar um arquivo de lote e executá-lo, o diretório base em que o cmd trabalha é o diretório e não o seu perfil de usuário.

Se você deseja que o arquivo em lote sempre seja enviado para a área de trabalho, independentemente de onde ele está armazenado, o cmd environment tem uma variável USERPROFILE que aponta para o diretório do perfil ( C:\Users\yourUserName ) e pode ser combinado com \desktop para enviar arquivos para sua área de trabalho.

Onde você tem

tracert 111.111.111.111 > desktop\tracert.txt

Substitua por

tracert 111.111.111.111 > %USERPROFILE%\desktop\tracert.txt
    
por 20.04.2013 / 21:23
3

"Desktop", neste caso, é o caminho relativo. Você deve mudar para a pasta correta (comando "cd") ou colocar o caminho completo para o arquivo de saída no arquivo .bat.

    
por 20.04.2013 / 21:01
1

1> é STDOUT, em oposição a STDERR, que é 2>

Acho que o espaço é apenas um problema sintático, o cmd.exe não gosta do espaço em branco, por isso o altera.

Consulte o redirecionamento de comandos página para mais informações.

Quanto ao erro não encontrado, verificar as permissões nesse diretório seria minha primeira sugestão.

PS: Não é mais um usuário vencedor, mas é 'desktop' uma maneira válida de acessar a área de trabalho, ou é um nome de diretório?

    
por 20.04.2013 / 20:58