Запуск% temp% идет в файл в папке Users

503
Zackary

Недавно я создал файл .bat для удаления временных файлов и запустил его. Код для этого:

@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="" 

Это работает, но теперь (когда я захожу в% Temp% из Проводника или в окне «Выполнить»), он спрашивает, как вы хотите открыть этот файл? Когда я выбираю Notepad ++, он открывает файл с моим именем пользователя, расположенный в C: \ Users \ Zackary (в отличие от моего пользовательского каталога, C: \ Users \ ZACKAR ~ 1 \). Файл читает:

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. 

УТОЧНИТЬ:% tmp% и% temp% имеют одинаковые значения. Это взято непосредственно из CMD.

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

Эта проблема не возникает на других учетных записях пользователей на этом компьютере. Это произошло еще до того, как у меня появился «Черный экран смерти» с курсором (что привело к замене жесткого диска). Я попытался перезагрузиться, выйти и снова войти, убедиться, что папка существует, и т. Д. Как заставить% temp% вернуться в папку с временными файлами?

РЕДАКТИРОВАТЬ : Я нашел проблему. В моей пользовательской папке, отличной от 8.3, есть пробел (Zackary R), который заставляет программы видеть его как 2 параметра C:\Users\Zackary(как 1-й параметр) и R\AppData\Local\Temp(как второй параметр) считывает первый параметр, вызывая его перенаправление в файл Zackary в папка Users.

0
Вау, это неясно. Почему вы используете `% tmp%` в одном месте и `% Temp%` в другом? Обе переменные установлены на нормальные значения? (Введите `` `set t```.) Что вы имеете в виду, когда говорите" когда я открываю% Temp% "? Это в CMD? Если это так, *** ТОЧНО, что вы набрали **? * Или вы говорите о каком-то действии с графическим интерфейсом (например, где-то нажимаете)? Опять же, * что вы сделали? * Как / где появляется вопрос «Как вы хотите открыть этот файл?»? (В CMD? Во всплывающем окне? Говорит звуковая карта?)… (Продолжение) Scott 6 лет назад 0
(Продолжение) ... Что-то выглядит по-другому в вашем домашнем каталоге в Windows Explorer? Вы можете `cd \ Users` и сделать` dir`? А потом `CD Zackary` и` dir`? Вы пытались запустить новое окно CMD? Вы пытались выйти и снова? Вы пытались перезагрузиться? ……………… Пожалуйста, не отвечайте в комментариях; [отредактируйте] ваш вопрос, чтобы сделать его более понятным и полным. Scott 6 лет назад 1

1 ответ на вопрос

1
Zackary

Я исправил это - это было намного проще их, я думал.

В моей папке пользователя, отличной от 8.3, было место (например, Имя пользователя, а не USERNA ~ 1), которое заставляло бы программы видеть его как 2 параметра C: \ Users \ User (как 1-й параметр) и Name \ AppData \ Local \ Temp (как второй параметр). Он читает первый параметр, заставляя его перенаправить в файл User в папке Users. Удаление файла C: \ Users \ User решило его (это было не важно, потому что он содержал только ошибки CMD).

Обходной путь (без удаления этого файла) заключается в использовании ссылок% tmp% и% temp% в кавычках.

Хорошая находка и хороший ответ Christopher Hostage 5 лет назад 0