运行大量的selenium测试会导致temp文件夹在firefox的情况下填充很多'anonymous-web-driver'配置文件,在chrome的情况下会填充'scoped-dirs'。
为了解决这个问题,我提出了以下批处理脚本代码
@echo off
cd %temp%
for /d %%D in (*) do rd /s /q "%%D"
del /f /q *
我有以下问题
1)它成功完成了工作,但是当批处理脚本在网络驱动器上运行时,它会删除当前文件夹中的所有文件,因为cd %temp%
没有导航到temp,因为没有临时文件夹。
无论如何确保仅当前目录为temp时才执行第3行和第4行。由于脚本存储在网络驱动器上,我想确保即使它意外运行也会导致任何无意的删除。
2)由于某些文件夹无法在temp中删除,因此cmd窗口挂起,说这些文件夹无法删除。我很好用无法删除的文件但我想关闭cmd窗口我有数百个测试要运行,每个测试打开一个cmd窗口都非常难看。
我尝试了以下Runtime.getRuntime().exec("taskkill /f /im cmd.exe");
并且它工作正常,除了以下事实,它杀死了所有cmd进程,还有其他cmd进程做了一些工作。我有什么办法可以关闭只打开的cmd窗口通过运行时exec调用?
答案 0 :(得分:2)
setlocal enableextensions
pushd "%temp%"
if not errorlevel 1 (
rmdir . /s /q >nul 2>nul
popd
)
由于目前的目录无法删除,因此会删除所有未锁定的文件和目录。
答案 1 :(得分:0)
if not "%temp%"=="%CD%" goto :eof
每当批处理文件命中此行时,它会测试当前目录是否等于临时目录,如果不退出批处理文件。