Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用批处理脚本清除selenium测试中的临时文件夹_Java_Batch File_Selenium - Fatal编程技术网

Java 使用批处理脚本清除selenium测试中的临时文件夹

Java 使用批处理脚本清除selenium测试中的临时文件夹,java,batch-file,selenium,Java,Batch File,Selenium,运行大量selenium测试会导致临时文件夹中出现大量的“匿名web驱动程序”配置文件(对于firefox)和“作用域目录”(对于chrome) 为了解决这个问题,我提出了以下批处理脚本代码 @echo off cd %temp% for /d %%D in (*) do rd /s /q "%%D" del /f /q * 我有以下问题 1) 它成功地完成了任务,但当批处理脚本在网络驱动器上运行时,它会删除当前文件夹中的所有文件,因为没有临时文件夹,因此cd%temp%不会导航到临时文件夹

运行大量selenium测试会导致临时文件夹中出现大量的“匿名web驱动程序”配置文件(对于firefox)和“作用域目录”(对于chrome)

为了解决这个问题,我提出了以下批处理脚本代码

@echo off
cd %temp%
for /d %%D in (*) do rd /s /q "%%D"
del /f /q *
我有以下问题

1) 它成功地完成了任务,但当批处理脚本在网络驱动器上运行时,它会删除当前文件夹中的所有文件,因为没有临时文件夹,因此
cd%temp%
不会导航到临时文件夹

是否有方法确保仅当当前目录为temp时才执行第3行和第4行。由于脚本存储在网络驱动器上,我希望确保即使它是意外运行的,也不会导致任何意外删除

2) 由于temp中的一些文件夹无法删除,cmd窗口挂在那里,表示这些文件夹无法删除。我对无法删除的文件很满意,但我想关闭cmd窗口,因为我有数百个测试要运行,每个打开cmd窗口的测试都非常难看

我尝试了以下
Runtime.getRuntime().exec(“taskkill/f/im cmd.exe”),它工作正常,除了以下事实:它杀死了所有cmd进程,还有其他cmd进程可以工作。有没有办法只关闭运行时exec调用打开的cmd窗口

setlocal enableextensions

    pushd "%temp%"
    if not errorlevel 1 (
        rmdir . /s /q >nul 2>nul
        popd
    )
由于当前目录无法删除,它将删除所有未锁定的文件和目录

 if not "%temp%"=="%CD%" goto :eof 

每当批处理文件到达这一行时,它会测试当前目录是否等于临时目录,如果不等于,则会退出批处理文件。

可能重复的@rohankamat:这正是我从第一个位置通过批处理脚本获得的位置。但我的问题在这里有点不同。@DavidCandy:你能给我一个例子吗如果存在(文件夹的路径),然后是代码,但它的作用是相同的。@DavidCandy:你能用完整的代码和代码标签作为答案发布吗,这样我才能更好地理解。我已经尝试了所有文件夹存在的可能性。不知何故,如果条件得到运行,它会删除文件夹中的内容。效果很好。这背后的概念是什么?我只是想知道,对于第二部分,我找不到解决方案。通过使用线程信号解决了这个问题,并在工作完成后关闭了所有cmd进程。Pushd将当前目录“存储”在内存中,并更改为指示的驱动器/目录,如果无法执行此操作,则生成错误级别。如果没有错误级别,请尝试递归删除当前目录。它开始删除下面的任何内容(文件、文件夹)。一旦if完成,尝试删除当前目录,但由于我们正在使用它,因此无法删除它。然后
popd
从内存中检索存储的目录以返回到原始目录。对于第二部分:rmdir不等待文件/文件夹删除,也不阻塞(仅在工作时)cmd窗口。如果窗户一直开着,问题出在其他地方。如何启动批处理文件?我重新阅读了原始问题,我的问题是相同的,批处理文件如何调用?按照您所说的方法,但是,什么代码执行反批处理?确切的函数调用,传递的参数。。。无论如何,请尝试在批处理文件末尾添加
exit
,以确保“确保?”窗口关闭。