草庐IT

if-else-statement

全部标签

windows - 批处理文件,vista x64,if 和括号

Windows上的一些批处理文件使用多行IF语法,如下所示:ifvar==rule(somecomands)else(elsecommands)现在,WindowsVistax64决定将所有32位文件放在“C:\ProgramFiles(x86)”下。不幸的是,每当您在不带引号的多行IF内使用环境变量(例如PATH)时,变量值内的括号会混淆IF,从而中止批处理文件。例如:if"%OS%"=="Windows_NT"(@setlocalcall:set_homeset_ARGS=%*)else(set_SCALA_HOME=%SCALA_HOME%remThefollowinglinet

windows - 为什么 @ECHO ON/OFF 在批处理文件 IF block 中不起作用?

@echoon和@echooff在批处理文件中带括号的ifblock中执行时似乎没有任何影响.这是一个简单的演示:@echooffechoTest#1if1==1(@echoonechoTest#2@echooffechoTest#3)@echoonechoTest#4在命令行上运行上面的输出是:Test#1Test#2Test#3C:\mybatchfilelocation>echoTest#4Test#4任何人都可以对此进行解释和/或提出解决方法吗?(预计它可能可以通过大量使用goto和标签来修复,但如果可能的话,我更愿意继续使用括号中的block...)

windows - 批处理脚本 if else 命令

我正在尝试制作一个简单的批处理脚本来删除/清零闪存驱动器并重新格式化它。它是为其他人准备的,所以我试图通过阻止格式化为C:、D:等使其相对安全。我正在寻找一个我可以使用的IFELSE类型的命令,作为一个错误的包罗万象。这是我的ATM的(主要部分):againecho.clsecho.echoPleaseselectthedriveletterfortheflashechodriveyouwishtoeraseecho.echo****DONOTSELECTC:ORD:****echo.echo.echo***Enterletter(nocolon)ONLYe.g."E"***echo.

c++ - Windows 多显示器 : How can I determine if a target is physically connected to a source when the target is available but not active?

我想根据来自DISPLAYCONFIG_TARGET_DEVICE_NAME和/或DISPLAYCONFIG_PATH_TARGET_INFO的信息启用特定的禁用监视器。要实际启用此监视器,我需要做的就是将其成功映射到要启用的匹配设备名称,例如\\.\DISPLAY1。但是如果没有预先存在的特殊知识,我找不到任何通用的方法来做出这个决定。如果我能将它与实际相关匹配的DISPLAYCONFIG_PATH_SOURCE_INFO联系起来就好了。QueryDisplayConfig在我的机器上返回所有可能的源和目标组合,甚至将监视器与它们实际上未连接的源配对。我有4个端口和3个监视器,所以我

windows - 批处理文件 : Check if OS is Windows 10

我想制作一个批处理文件来执行以下操作:检查正在运行的操作系统是否为Windows。如果是,则应打印Hello。我赢了10否则应该打印其他消息。如果有条件,我该怎么做?伪代码:ifOS==Win10thenechoHelloimwin10elseechoIamanotheros 最佳答案 setlocalfor/f"tokens=4-5delims=."%%iin('ver')dosetVERSION=%%i.%%jif"%version%"=="6.3"echoWindows8.1if"%version%"=="6.2"echoWi

Windows 批处理脚本 : Perform a command if two files are the same!

我原以为这将是一项非常简单的任务,但我已经为此苦苦挣扎了几天,而且有点沮丧!我对Windows批处理脚本不是很熟悉,所以如果您知道答案,请尽可能简单:)基本上,我有一个Windows关机脚本(.bat文件),我想知道其中两个文本文件是否相同(即它们的内容完全相同),如果是,则执行goto命令(例如转到第10行)我不知道该怎么做!非常感谢您的帮助! 最佳答案 没有goto:fc/bfile1file2>nuliferrorlevel1(echodifferent)else(echosame)

Windows 批量转移在 if block 中不起作用

当我尝试在IFblock中使用SHIFT时,我看到了一些意想不到的结果。使用这个:@echooffif"%1"=="/p"(echo%1shiftecho"shifted"echo%1)我得到以下信息:C:\>ex.bat/pHAI/p"shifted"/p但是,当我使用这段代码时:@echooffecho%1shiftecho"shifted"echo%1我明白了:C:\>ex.bat/pHAI/p"shifted"HAI我需要第二个输出,但在一个逻辑block中,这样我就可以遍历它。我正在尝试实现类似于Jon在这里的回答:UsingparametersinbatchfilesatD

windows - 在 "if" block 中设置变量

下面的程序最后总是回显“machine-abc”:@echoOffsetdropLoc=machine-abcIF%computername%=="xyz"(%dropLoc%=machine-xyz)echo%dropLoc%这是范围问题吗?if语句中的dropLoc变量是否具有不同的范围?我尝试了以下方法来解决这个问题:@echoOffsetdropLoc=machine-abcIF%computername%=="xyz"(!dropLoc!=machine-xyz)echo%dropLoc%和@echoOffsetdropLoc=machine-abcIF%computerna

windows - if 条件下的批处理文件多个操作

有没有办法将多个操作置于if条件下?像这样:ifnotexistMyFolderName(ECHOcreateafoldermkdirMyFolderName) 最佳答案 你可以使用&来连接命令并在同一行执行它们。所以你的语法应该是这样的:ifnotexistMyFolderNameECHO"Createafolder"&mkdirMyFolderName更新或者您可以使用标签跳转到包含您要执行的命令的部分,例如:ifnotexistMyFolderNameGOTODOFILESTUFF:AFTER...EXIT:DOFILESTU

windows - 如何在批处理文件中使用 if 子句内的括号转义变量?

运行这个批处理文件@echooffseta=somevaluewith(parentheses)insideif1==1(setPATH=%a%)给出insidewasunexpectedatthistime.错误。如何转义a变量来避免这个错误? 最佳答案 你可以使用两种不同的方式使用带引号的set的扩展语法set"var=content"将设置带有内容的var,内容被引用所以特殊字符没有问题并且它使用内容直到最后一个引号(没有引号本身)@echooffseta=somevaluewith(parentheses)insideif1