2015-06-22 132 views
1

我已经在批处理文件下创建删除java缓存,IE历史记录,临时文件夹,但它也删除存储它的文件。批处理文件正在删除存储它的文件

任何人都可以帮助我了解批处理文件中的错误吗?

代码

cd C:\Users\username\AppData\LocalLow\Sun\Java\Deployment\cache 
del /Q *.* 

RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8 

RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 2 

RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 1 

RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 16 

cd C:\Users\SHIKHA~1.YAD\AppData\Local\Temp 
del /Q *.* 

cd C:\Windows\Prefetch 
del /Q *.* 

cd C:\Windows\Temp 
del /Q *.* 

cd C:\Windows\Downloaded Program Files 
del /Q *.* 

回答

1

cd方法的问题是,如果当前的活动目录是不是在目标文件夹中,cd不改变传动,del命令在执行相同的驱动器错误的驱动器。

此外,如果目标文件夹不存在,cd将无法​​更改活动目录,但执行继续,代码将删除错误的一组文件。

您可以使用cd /d "c:\...."来确保更改当前活动目录和驱动器,但操作仍有可能失败。您可以使用条件执行运算符&&

cd /d "x:\somewhere" && del /q * 

这意味着:首先更改当前的活动目录,如果命令已满足,则执行delete命令。

但是,它更容易直接指示要删除

del /q "C:\Users\username\AppData\LocalLow\Sun\Java\Deployment\cache\*" 

RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8 
RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 2 
RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 1 
RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 16 

del /q "C:\Users\SHIKHA~1.YAD\AppData\Local\Temp\*" 
del /q "C:\Windows\Prefetch\*" 
del /q "C:\Windows\Temp\*" 
del /q "C:\Windows\Downloaded Program Files\*" 
+0

感谢它帮了我:-) – user5035889

+0

@ user5035889在这种情况下,你必须接受它的答案!看看这个==> http://stackoverflow.com/tour – Hackoo