如何修复错误“文件名、目录名或卷标语法不正确。”运行我的bat文件时?

问题描述 投票:0回答:1

我试图删除

C:\Users\%USERPROFILE%\AppData\Local\Temp
它显示错误:

文件名、目录名或卷标语法不正确。

这是代码:

@Echo off

del /s /q "C:\Windows\Temp\*.*"
del /s /q "C:\Windows\Prefetch\*.*"
del /s /q "C:\Users\%USERPROFILE%\AppData\Local\Temp\*.*"

for /d %%p in ("C:\Windows\Prefetch\*.*") do rmdir "%%p" /s /q

for /d %%p in ("C:\Windows\Temp\*.*") do rmdir "%%p" /s /q

for /d %%p in ("C:\Users\%USERPROFILE%\AppData\Local\Temp\*.*") do rmdir "%%p" /s /q

ipconfig /flushdns
pause

这是运行批处理文件的输出:

The filename, directory name, or volume label syntax is incorrect.

Windows IP Configuration

Successfully flushed the DNS Resolver Cache.
Press any key to continue . . .
batch-file
1个回答
0
投票

使用此代码解决方案非常简单:

@echo off
setlocal EnableExtensions DisableDelayedExpansion
%SystemRoot%\System32\reg.exe QUERY "HKLM\System\CurrentControlSet\Control\Session Manager" /V PendingFileRenameOperations >nul 2>nul && goto NoDelInfo

pushd "%SystemRoot%\Temp" 2>nul && ( rd /Q /S "%SystemRoot%\Temp" 2>nul & popd )
pushd "%SystemRoot%\Prefetch" 2>nul && ( rd /Q /S "%SystemRoot%\Prefetch" 2>nul & popd )
pushd "%TEMP%" 2>nul && ( rd /Q /S "%TEMP%" 2>nul & popd )
%SystemRoot%\System32\ipconfig.exe /flushdns
goto EndBatch

:NoDelInfo
echo There are pending file rename operations.
echo/
echo Please first restart Windows and then run "%~nx0" once again.
echo/

:EndBatch
endlocal
pause

有关清除三个文件夹的三个命令行的完整说明,请参阅:
如何在Windows的命令提示符下删除特定目录下的文件/子文件夹?

在 Windows 下次启动时当前注册的待处理文件/文件夹重命名操作中,永远不应清除临时文件的目录,以完成安装或卸载,可能使用当前存储在临时文件的两个目录之一中的文件。

另请参阅有关预定义 Windows 环境变量 的维基百科文章,这些变量在命令提示符窗口中运行

set
时显示其值。

一般来说,最好以管理员身份运行Windows的磁盘清理工具,因为它可以删除更多不再需要的文件作为该批处理文件。

© www.soinside.com 2019 - 2024. All rights reserved.