使用Batch脚本清除selenium测试中的临时文件夹

时间:2013-10-29 06:33:42

标签: java batch-file selenium

运行大量的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调用?

2 个答案:

答案 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 

每当批处理文件命中此行时,它会测试当前目录是否等于临时目录,如果不退出批处理文件。