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