Beim Ausführen von %temp% wird die Datei im Benutzerordner aufgerufen.

Beim Ausführen von %temp% wird die Datei im Benutzerordner aufgerufen.

Ich habe kürzlich eine .bat-Datei zum Löschen temporärer Dateien erstellt und ausgeführt. Der Code dafür lautet:

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

Es funktioniert, aber jetzt (wenn ich vom Datei-Explorer oder Ausführen-Feld zu %Temp% gehe) fragt esWie möchten Sie diese Datei öffnen? Wenn ich Notepad++ auswähle, wird eine Datei mit meinem Benutzernamen geöffnet, die sich unter C:\Users\Zackary befindet (und nicht in meinem Benutzerverzeichnis C:\Users\ZACKAR~1\ ). Die Datei lautet:

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.

ZUR VERKLARUNG: %tmp% und %temp% haben die gleichen Werte. Dies wird direkt von CMD übernommen.

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

Dieses Problem tritt bei keinem anderen Benutzerkonto auf diesem Computer auf. Es ist sogar schon aufgetreten, bevor ich einen Black Screen of Death mit dem Cursor hatte (was dazu führte, dass ich die Festplatte austauschen musste). Ich habe versucht, neu zu starten, mich abzumelden und wieder anzumelden, sicherzustellen, dass der Ordner existiert usw. Wie kann ich %temp% wieder in meinen Ordner für temporäre Dateien zurückversetzen?

BEARBEITEN: Ich habe das Problem gefunden. In meinem Nicht-8.3-Benutzerordner (Zackary R) ist ein Leerzeichen, das dazu führt, dass Programme es als 2 Parameter sehen C:\Users\Zackary(als 1. Parameter) und R\AppData\Local\Temp(als zweiten Parameter). Es liest den ersten Parameter und führt dazu, dass es zur Datei Zackary im Ordner „Benutzer“ umgeleitet wird.

Antwort1

Ich habe es repariert – ich dachte, es wäre viel einfacher.

In meinem Nicht-8.3-Benutzerordner gab es eine Stelle (z. B. Benutzername statt USERNA~1), die Programme als zwei Parameter interpretierten: C:\Benutzer\Benutzer (als 1. Parameter) und Name\AppData\Local\Temp (als 2. Parameter). Der erste Parameter wurde gelesen, was zu einer Umleitung zur Datei „Benutzer“ im Ordner „Benutzer“ führte. Das Löschen der Datei „C:\Benutzer\Benutzer“ löste das Problem (es war nicht wichtig, da sie nur CMD-Fehler enthielt).

Die Problemumgehung (ohne die Datei zu löschen) besteht darin, %tmp%- und %temp%-Referenzen in Anführungszeichen zu verwenden.

verwandte Informationen