A execução de% temp% vai para o arquivo na pasta Users

0

Recentemente, criei um arquivo .bat para excluir arquivos temporários e executá-lo. O código para isso é:

@ECHO OFF
color 0f
echo -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
echo (                               Delete Temporary Files                                  )
echo -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
echo This will delete temporary files from your system.
pause
echo.
echo Deleting system terporary files...
del %SystemDrive%\Windows\Temp\ /Q
echo System temporary files deleted!
echo.
echo Deleting user temporary files...
del %tmp% /Q
echo User temporary files deleted!
echo.
echo All temporary files deleted!
echo.
echo Press ENTER to finish...
set /p exit=""

Funciona, mas agora (quando eu vou para% Temp% do File Explorer ou Run box), ele pergunta Como você deseja abrir este arquivo? Quando eu seleciono o Notepad ++, ele abre um arquivo com meu nome de usuário, localizado em C: \ Users \ Zackary (em oposição ao meu diretório de usuário, C: \ Users \ ZACKAR ~ 1 \). O arquivo lê:

Invalid number of parameters
Invalid number of parameters
Invalid number of parameters
Invalid number of parameters
ERROR: Invalid syntax. Default option is not allowed more than '2' time(s).
Type "SETX /?" for usage.

PARA CLARIFICAR:% tmp% e% temp% possuem os mesmos valores. Isso é tirado diretamente do CMD.

TEMP=C:\Users\ZACKAR~1\AppData\Local\Temp
TMP=C:\Users\ZACKAR~1\AppData\Local\Temp

Este problema não acontece em nenhuma outra conta de usuário neste computador. Aconteceu mesmo antes de eu ter uma Black Screen of Death com cursor (o que levou a substituir o disco rígido). Eu tentei reiniciar, sair e voltar novamente, certificando-se de que a pasta existe, etc. Como faço para que% temp% volte para minha pasta de arquivos temporários?

EDIT : Eu encontrei o problema. Há um espaço na minha pasta de usuário não 8.3 (Zackary R) Isso faz com que os programas o vejam como 2 parâmetros C:\Users\Zackary (como primeiro parâmetro) e R\AppData\Local\Temp (como segundo parâmetro) Ele lê o primeiro parâmetro, fazendo com que ele reencaminhar para o arquivo Zackary na pasta Usuários.

    
por Zackary 10.04.2018 / 21:39

1 resposta

1

Consertei - foi muito mais simples do que eu pensava.

Havia um espaço na minha pasta de usuário não-8.3 (por exemplo, User Name, em vez de USERNA ~ 1) que faria com que os programas o visualizassem como dois parâmetros C: \ Users \ User (como primeiro parâmetro) e Name \ AppData \ Local \ Temp (como segundo parâmetro). Ele lê o primeiro parâmetro, fazendo com que ele redirecione para o arquivo User na pasta Users. A exclusão do arquivo C: \ Users \ User resolveu (não era importante porque continha apenas erros de CMD).

A solução alternativa (sem excluir esse arquivo) é usar as referências% tmp% e% temp% entre aspas.

    
por 24.05.2018 / 23:03