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
Batch file 如何在batchfile中检查虚拟机是否正在运行。如果它没有运行,则我要启动虚拟机_Batch File_Virtual Machine_Virtualbox - Fatal编程技术网

Batch file 如何在batchfile中检查虚拟机是否正在运行。如果它没有运行,则我要启动虚拟机

Batch file 如何在batchfile中检查虚拟机是否正在运行。如果它没有运行,则我要启动虚拟机,batch-file,virtual-machine,virtualbox,Batch File,Virtual Machine,Virtualbox,我想检查虚拟机是否正在运行,如果它没有运行,那么我想启动虚拟机,如果它正在运行,那么我想终止任务。 为此,我必须实现一个批处理文件 我想将虚拟机状态打印到变量中 在批处理文件中,我实现如下: @echo off for /f "tokens=1 delims= " %%i in ('C:\\"Program Files"\\Oracle\\VirtualBox\\VBoxManage showvminfo Linux ^|grep -e "Sta

我想检查虚拟机是否正在运行,如果它没有运行,那么我想启动虚拟机,如果它正在运行,那么我想终止任务。 为此,我必须实现一个批处理文件

我想将虚拟机状态打印到变量中

在批处理文件中,我实现如下:

@echo off
for /f "tokens=1 delims= " %%i in ('C:\\"Program Files"\\Oracle\\VirtualBox\\VBoxManage showvminfo Linux ^|grep -e "State:"') do (set result=%%i)
echo %result%
但是我需要将输出值转换成一个变量

但是我没有得到任何输出,它没有返回任何输出。 我想将输出作为其运行或关机状态

实际输出如下所示:

所以在这个语句中,我需要运行
作为变量
结果的输出。

一旦我将状态输入到变量中,我就可以签入条件以启动虚拟机或终止服务器。

grep
不是内置的Windows实用程序,那么
grep.exe安装/定位在哪里?如果不在当前目录中,那么该位置是否是
%PATH%
环境变量值中列出的位置之一?如果没有,请将
grep-e
更改为
findstr/b
find
,以使用这两个内置Windows实用程序之一。也不要像这样使用双引号,
C:\“程序文件”\Oracle\VirtualBox\VBoxManage
,将其更改为
“C:\Program Files\Oracle\VirtualBox\VBoxManage.exe”
%ProgramFiles%\Oracle\VirtualBox\VBoxManage.exe”
State:           running (since 2020-09-20T17:21:43.559000000)