您将如何在DOS批处理文件中实现逻辑运算符?

有帮助吗?

解决方案

你可以做 and 嵌套条件:

if %age% geq 2 (
    if %age% leq 12 (
        set class=child
    )
)

或者:

if %age% geq 2 if %age% leq 12 set class=child

你可以做 or 带有单独的变量:

set res=F
if %hour% leq 6 set res=T
if %hour% geq 22 set res=T
if "%res%"=="T" (
    set state=asleep
)

其他提示

IF 声明不支持逻辑运营商(ANDOR),级联 IF 陈述是隐式连词。

IF Exist File1.Dat IF Exist File2.Dat GOTO FILE12_EXIST_LABEL

如果 File1.Dat File1.Dat 存在然后跳下标签 FILE12_EXIST_LABEL.

也可以看看: IF /?

摩根的法律 允许我们仅使用连词(“和”)和否定(“非”)将析取(“或”)转换为逻辑当量。这意味着我们可以将析取(或“)链接到一条线上。

这意味着如果名字是“ Yakko”或“ Wakko”或“ Dot”,则是Echo“ Warner兄弟或姐妹”。

set warner=true
if not "%name%"=="Yakko" if not "%name%"=="Wakko" if not "%name%"=="Dot" set warner=false
if "%warner%"=="true" echo Warner brother or sister

这是Paxdiablo的“或”示例的另一个版本,但是将条件链接到一行。 (请注意,相反 leqgtr, ,相反 geqlss.)

set res=true
if %hour% gtr 6 if %hour% lss 22 set res=false
if "%res%"=="true" set state=asleep

以下示例显示了如何制作和语句(用于设置变量或包括命令的参数)。

要启动记事本并关闭CMD窗口:

start notepad.exe & exit

如果变量“ a”等于blah,则将变量x,y和z设置为值。

IF "%a%"=="blah" (set x=1) & (set y=2) & (set z=3)

希望有帮助!

我认为ffplay从版本更改为版本,但在我看的代码中,我没有看到任何IPC代码和事件都是从SDL开发的GUI接收的。因此,您可以使用这种方式或者您可以在ffplay.c中更改event_loop()函数以获取STDIN的事件,而且使用QProcess的Write()方法发送事件。

您也可以简单地在您自己的类中删除main()和event_loop()函数中的ffplay代码。

我建议您在VS2012中查找编码UI测试。你没有提到你的SharePoint版本,因为它只是假设它是2013年。

Microsoft SharePoint 2013提供的所有功能都可以使用少数例外测试进行编码的UI测试来测试。

看看这篇文章,这可能会帮助您开始: http://blogs.msdn.com/b/visualstudioalm/archive/2013/01/25/2/25/2013/01/25/2/25/2013/01/25/25/2/25/2013/01/25/25/2Microsoft-SharePoint-2013-With-Visual-Studio-2012.aspx

我建议您做的是在解决方案上的核心功能进行小型测试用例。然后稍后扩展它。使其小而模块化希望使其保持可维护。一个简单的陷阱是制造真正的大,在整个测试用例中,这将很难改变。 好运

Athul Prakash(当时16岁)给出了如何通过否定语句中的条件,然后将Else子句用作将需要执行的代码的位置来实现或测试的逻辑想法。我以为自己,但是通常需要两个条款,因为他建议使用两个语句,因此需要编写执行的代码 两次. 。但是,如果使用一个goto跳过所需的代码,而不是编写else子句,则只需要编写执行代码 一次.

这是我如何实施Athul Prakash的负面逻辑来创建一个可检验的例子 或者.

在我的示例中 如果有人拥有坦克许可证或他们正在服兵役,则可以驾驶坦克. 。进入 真的 或者 错误的 在两个提示下,您将能够查看逻辑是否允许您驾驶坦克。

@ECHO OFF
@SET /p tanklicence=tanklicence:
@SET /p militaryservice=militaryservice:

IF /I NOT %tanklicence%==true IF /I NOT %militaryservice%==true GOTO done

ECHO I am driving a tank with tanklicence set to %tanklicence% and militaryservice set to %militaryservice%

:done

PAUSE

与以下内容一样容易:

> if+如果

if "%VAR1%"=="VALUE" if "%VAR2%"=="VALUE" *do something*

或>如果//如果

set BOTH=0
if "%VAR1%"=="VALUE" if "%VAR2%"=="VALUE" set BOTH=1
if "%BOTH%"=="0" if "%VAR1%"=="VALUE" *do something*
if "%BOTH%"=="0" if "%VAR2%"=="VALUE" *do something*

我知道还有其他答案,但是我认为我的更简单,因此更容易理解。希望这对您有帮助! )

如果您有兴趣写一个 if+AND/OR 在一个陈述中,没有任何内容。但是,您仍然可以分组 if&&/||(/) 陈述可以实现您想要的一行,与任何其他变量和w/o if-else 块重复(单个 echo 命令 TRUEFALSE 代码部分):

@echo off

setlocal

set "A=1" & set "B=2" & call :IF_AND
set "A=1" & set "B=3" & call :IF_AND
set "A=2" & set "B=2" & call :IF_AND
set "A=2" & set "B=3" & call :IF_AND

echo.

set "A=1" & set "B=2" & call :IF_OR
set "A=1" & set "B=3" & call :IF_OR
set "A=2" & set "B=2" & call :IF_OR
set "A=2" & set "B=3" & call :IF_OR

exit /b 0

:IF_OR
( ( if %A% EQU 1 ( type nul>nul ) else type 2>nul ) || ( if %B% EQU 2 ( type nul>nul ) else type 2>nul ) || ( echo.FALSE-& type 2>nul ) ) && echo TRUE+

exit /b 0

:IF_AND
( ( if %A% EQU 1 ( type nul>nul ) else type 2>nul ) && ( if %B% EQU 2 ( type nul>nul ) else type 2>nul ) && echo.TRUE+ ) || echo.FALSE-


exit /b 0

输出:

TRUE+
FALSE-
FALSE-
FALSE-

TRUE+
TRUE+
TRUE+
FALSE-

诀窍在于 type 命令掉落/设置 errorlevel 因此,处理下一个命令的道路。

如果发现Internet Explorer以不同的方式处理自动完成的焦点事件,以不同地浏览器;基本上IE异步执行事件,而且因为此我无法快速确定事件触发的事件顺序。基本上,我所要做的就是将这个小型代码添加到Select事件:

select: function(event, ui) {
  $this = $(this);
  setTimeout(function() {
    $("#<%=txtBoss.ClientID %>").val(ui.item.boss);
    $this.blur();
  }, 1);
}
. 我找到了一篇很好的文章,这里非常好地解释: http://daniellang.net/blur-not-working-with-jquery-ui-autocomplete-in-ie/

对Andry的答案进行了稍作修改,减少了重复类型的命令:

set "A=1" & set "B=2" & call :IF_AND
set "A=1" & set "B=3" & call :IF_AND
set "A=2" & set "B=2" & call :IF_AND
set "A=2" & set "B=3" & call :IF_AND

echo.

set "A=1" & set "B=2" & call :IF_OR
set "A=1" & set "B=3" & call :IF_OR
set "A=2" & set "B=2" & call :IF_OR
set "A=2" & set "B=3" & call :IF_OR

goto :eof

:IF_OR

(if /i not %A% EQU 1 (
   if /i not %B% EQU 2 (
      echo FALSE-
      type 2>nul
   )
)) && echo TRUE+

goto :eof

:IF_AND


(if /i %A% EQU 1 (
   if /i %B% EQU 2 (
      echo TRUE+
      type 2>nul
   )
)) && echo FALSE-

goto :eof
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top