Wenn Sie% temp% ausführen, wird die Datei im Benutzerordner abgelegt

616
Zackary

Vor kurzem habe ich 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 aus dem Datei-Explorer oder dem Feld Ausführen zu% Temp% gehe), werden Sie gefragt, wie Sie diese Datei öffnen möchten. Wenn ich Notepad ++ auswähle, wird eine Datei mit meinem Benutzernamen unter C: \ Users \ Zackary geöffnet (im Gegensatz zu meinem Benutzerverzeichnis C: \ Users \ ZACKAR ~ 1 \). Die Datei liest:

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. 

ZU CLARIFY:% 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 anderen Benutzerkonten auf diesem Computer nicht auf. Es ist schon passiert, bevor ich einen Black Screen of Death mit dem Cursor hatte (was zum Ersetzen der Festplatte führte). Ich habe einen Neustart versucht, mich ab- und wieder angemeldet, um sicherzustellen, dass der Ordner vorhanden ist usw. Wie kann ich% temp% dazu bringen, zu meinem Ordner für temporäre Dateien zurückzukehren?

EDIT : Ich habe das Problem gefunden. In meinem Nicht-8.3-Benutzerordner (Zackary R) gibt es ein Leerzeichen, das bewirkt, dass Programme es als 2 Parameter C:\Users\Zackary(als 1. Parameter) und R\AppData\Local\Temp(als zweiten Parameter) sehen. Es liest den ersten Parameter und veranlasst die Umleitung zur Datei Zackary in den Benutzerordner.

0
Wow, das ist unklar. Warum verwenden Sie an einer Stelle "% tmp%" und an einer anderen Stelle "% Temp%"? Sind beide Variablen auf normale Werte eingestellt? (Typ `` `set t```.) Was meinen Sie, wenn Sie sagen, wenn ich% Temp% öffne? Ist das in CMD? Wenn ja, EXAKT was haben Sie eingegeben **? * Oder sprechen Sie über eine Art GUI-Aktion (z. B. Klicken irgendwo)? Nochmals * Was haben Sie getan? * Wie / Wo erscheint die Frage "Wie möchten Sie diese Datei öffnen?" (In CMD? In einem Popup-Fenster? Von der Soundkarte gesprochen?)… (Fortsetzung) Scott vor 6 Jahren 0
(Fortsetzung)… Sieht Ihr Ausgangsverzeichnis in Windows Explorer anders aus? Können Sie "cd \ Users" und ein "dir" ausführen? Und dann `cd Zackary` und` dir`? Haben Sie versucht, ein neues CMD-Fenster zu starten? Haben Sie versucht, sich wieder anzumelden? Hast du einen Neustart versucht? ……………… Bitte antworten Sie nicht in Kommentaren; Bearbeiten Sie Ihre Frage, um sie klarer und vollständiger zu machen. Scott vor 6 Jahren 1

1 Antwort auf die Frage

1
Zackary

Ich habe es repariert - es war viel einfacher, dachte ich.

In meinem Nicht-8.3-Benutzerordner (z. B. Benutzername und nicht USERNA ~ 1) befand sich ein Leerzeichen, das die Programme als 2 Parameter C: \ Users \ User (als 1. Parameter) und Name \ AppData \ anzeigen würde. Local \ Temp (als zweiter Parameter). Es liest den ersten Parameter und veranlasst ihn, die Datei User im Ordner Users umzuleiten. Löschen der Datei C: \ Users \ User löste sie (es war nicht wichtig, da sie nur CMD-Fehler enthielt).

Die Problemumgehung (ohne diese Datei zu löschen) besteht in der Verwendung von% tmp% - und% temp% -Verweisen in Anführungszeichen.

Guter Fund und gute Antwort Christopher Hostage vor 6 Jahren 0