Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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
Variables 根据变量的内容执行不同的命令_Variables_Batch File_Tags - Fatal编程技术网

Variables 根据变量的内容执行不同的命令

Variables 根据变量的内容执行不同的命令,variables,batch-file,tags,Variables,Batch File,Tags,假设一个变量的值为“hello world” 我想使它与变量中的其他内容无关:例如,如果它有某个单词,hello,它执行某个命令 如果没有单词hello,它会执行不同的命令 echo %path% | findstr /i /c:"hello" && Echo Success || Echo Failure 来自MSDos 6.22帮助文件 查找出口代码 下面的列表显示了每个退出代码及其简要说明 意思是: 0搜索已成功完成,至少找到一个匹配项 1搜索已成功完成,但未找到匹配项

假设一个变量的值为“hello world”

我想使它与变量中的其他内容无关:例如,如果它有某个单词,
hello
,它执行某个命令

如果没有单词
hello
,它会执行不同的命令

echo %path% | findstr /i /c:"hello" && Echo Success || Echo Failure
来自MSDos 6.22帮助文件

查找出口代码

下面的列表显示了每个退出代码及其简要说明 意思是:

0搜索已成功完成,至少找到一个匹配项

1搜索已成功完成,但未找到匹配项

2搜索未成功完成。在本例中,将显示一个错误 在搜索过程中发生,而“查找”无法报告是否存在任何匹配项 被发现了

您可以在批处理中使用命令行上的ERRORLEVEL参数 处理FIND返回的退出代码的程序

关于CMD的特殊角色

&    seperates commands on a line.

&&    executes this command only if previous command's errorlevel is 0.

||    (not used above) executes this command only if previous command's errorlevel is NOT 0

>    output to a file

>>    append output to a file

<    input from a file

|    output of one command into the input of another command

^    escapes any of the above, including itself, if needed to be passed to a program

"    parameters with spaces must be enclosed in quotes

+ used with copy to concatinate files. E.G. copy file1+file2 newfile

, used with copy to indicate missing parameters. This updates the files modified date. E.G. copy /b file1,,

%variablename% a inbuilt or user set environmental variable

!variablename! a user set environmental variable expanded at execution time, turned with SelLocal EnableDelayedExpansion command

%<number> (%1) the nth command line parameter passed to a batch file. %0 is the batchfile's name.

%* (%*) the entire command line.

%<a letter> or %%<a letter> (%A or %%A) the variable in a for loop. Single % sign at command prompt and double % sign in a batch file.
&在一行上分隔命令。
&&仅当上一个命令的errorlevel为0时才执行此命令。
||(上面未使用)仅当上一个命令的errorlevel不是0时才执行此命令
>输出到文件
>>将输出附加到文件
<从文件输入
|将一个命令的输出转换为另一个命令的输入
^如果需要传递给程序,则转义上述任何一项,包括转义本身
“带空格的参数必须用引号括起来
+用于复制以包含文件。例如,复制文件1+文件2新文件
,与“复制”一起使用以指示缺少的参数。这将更新文件的修改日期。例如,“复制/b文件1,”,,
%variablename%a内置或用户设置的环境变量
!variablename!用户设置的环境变量在执行时展开,并使用SelLocal EnableDelayedExpansion命令打开
%(%1)传递给批处理文件的第n个命令行参数。%0是批处理文件的名称。
%*(*)整个命令行。
%或%%(%A或%%A)for循环中的变量。在命令提示下单%s签名,在批处理文件中双%s签名。

阅读上的布尔测试示例“字符串是否存在?”如果不希望findstr在实际找到某个内容时将找到的字符串打印到屏幕上,则应将输出重定向到NUL。例如,
findstr/i/c:“System32”>NUL