Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.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 Can';t删除字符串批处理的一部分_Batch File - Fatal编程技术网

Batch file Can';t删除字符串批处理的一部分

Batch file Can';t删除字符串批处理的一部分,batch-file,Batch File,我创建了一个批处理文件来运行test,如果它还没有运行,则运行test1 但是当我运行它时 @echo off start test.exe >nul 2>nul tasklist /fi "IMAGENAME eq test1.exe">tmp.t set /p "isRunning=<tmp.t" %isRunning%>test1.txt pause IF NOT /i %isRunning:INFO=%==%isRunning% (start X:

我创建了一个批处理文件来运行
test
,如果它还没有运行,则运行
test1
但是当我运行它时

  @echo off

start test.exe  >nul 2>nul

tasklist /fi "IMAGENAME eq test1.exe">tmp.t
set /p "isRunning=<tmp.t"
%isRunning%>test1.txt
pause
IF NOT /i %isRunning:INFO=%==%isRunning% (start X:\X\test1.exe >nul 2>nul)
timeout 10
del tmp.t
然后

此外,test1.txt仍为空。此行
如果没有/i%isRunning:~INFO=%%==%isRunning%
用于检查进程是否正在运行。看来 like字符串替换没有按应有的方式工作
%isRunning:INFO=%


我想不出哪里出了问题。

您最好使用
&&
|
运算符:

@echo off
Set "MyProcess=test1.exe"

tasklist | find /i "%MyProcess%">nul  && echo %MyProcess% Is running || start "" "X:\X\test1.exe" >nul

仅回答(部分)您的问题:

/i
参数必须直接放在
if
语句之后

如果字符串为空,在测试变量之间加双引号可避免出现错误:

IF /i NOT "%isRunning:INFO=%"=="%isRunning%" (start X:\X\test1.exe >nul 2>nul)
@echo off
Set "MyProcess=test1.exe"

tasklist | find /i "%MyProcess%">nul  && echo %MyProcess% Is running || start "" "X:\X\test1.exe" >nul
IF /i NOT "%isRunning:INFO=%"=="%isRunning%" (start X:\X\test1.exe >nul 2>nul)