%temp% を実行すると、Users フォルダ内のファイルに移動します。

%temp% を実行すると、Users フォルダ内のファイルに移動します。

最近、一時ファイルを削除する .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(2 番目のパラメーター) 最初のパラメーターを読み取り、Users フォルダー内のファイル Zackary に再ルーティングします。

答え1

修正しました。思ったよりずっと簡単でした。

8.3 以外のユーザー フォルダー (たとえば、USERNA~1 ではなくユーザー名) にスペースがあり、プログラムがそれを 2 つのパラメーター C:\Users\User (最初のパラメーター) と Name\AppData\Local\Temp (2 番目のパラメーター) として認識していました。最初のパラメーターが読み取られ、Users フォルダー内のファイル User に再ルーティングされます。ファイル C:\Users\User を削除すると、問題は解決しました (CMD エラーのみが含まれていたため、これは重要ではありませんでした)。

回避策は(そのファイルを削除せずに)引用符で囲んだ %tmp% および %temp% 参照を使用することです。

関連情報