在批处理文件中,我有一个字符串abcdefg.我想检查是否bcd在字符串中.
不幸的是,似乎我找到的所有解决方案都搜索子文件的文件,而不是子字符串的字符串.
有一个简单的解决方案吗?
我遇到了ss64.com,它为如何编写Windows命令解释器将运行的批处理脚本提供了很好的帮助.
但是,我一直无法找到批处理脚本的语法,扩展或不扩展的方法,以及如何逃避事情的良好解释.
以下是我无法解决的示例问题:
foreach $i (@ARGV) { print '*' . $i ; }),编译它并以这种方式调用它:
my_script.exe "a ""b"" c"?输出是 *a "b*cmy_script.exe """a b c"""?输出它*"a*b*c"echo命令如何工作?在那个命令中扩展了什么?for [...] %%I在文件脚本中使用,但for [...] %I在交互式会话中?%PROCESSOR_ARCHITECTURE%字面回声?我发现echo.exe %""PROCESSOR_ARCHITECTURE%有效,有没有更好的解决方案?%配对?例:
set b=a,echo %a %b% c%?%a a c%set a =b,echo %a %b% c%?bb c%我试着理解批处理文件中单个命令行中的多个命令是如何工作的.
dir & md folder1 & rename folder1 mainfolder
Run Code Online (Sandbox Code Playgroud)
和其他情况类似的命令,但&用&&.
dir && md folder1 && rename folder1 mainfolder
Run Code Online (Sandbox Code Playgroud)
1.这两种情况有什么区别?
我想问的其他事情:
单线batch.bat:
dir & md folder1 & rename folder1 mainfolder
Run Code Online (Sandbox Code Playgroud)
多线程batch.bat:
dir
md folder1
rename folder1 mainfolder
Run Code Online (Sandbox Code Playgroud)
2.这种单线程和多线程在批处理文件程序方面是否相同?
还有一件事我想知道:
3.如果我从main.bat调用其他批处理文件,它们是否独立运行?主批处理文件不等待其他批处理文件中的结束程序?怎么做?
我用set命令在cmd中设置了一个变量,然后尝试了echo.
这是一个例子:
C:\Users\Logan>set var = text
C:\Users\Logan>set var
var = text
C:\Users\Logan>echo %var%
%var%
C:\Users\Logan>
Run Code Online (Sandbox Code Playgroud)
有没有办法强制cmd echo变量而不是原始文本?
在批处理中,我总是==在使用if命令时使用.(例如:if "19"=="3" echo My computer doesnt know maths)
怎么样对所有其他的(LSS,LEQ,NEQ等)?是不是有什么样!=的NEQ,还是我想Unix的?
我想使用符号的原因是因为我认为有人说文字或数字符号比使用文本变体更有效.
无论哪种方式,我还是想知道.谢谢.
这是删除当前文件夹中除bat文件之外的所有文件的方法:
forfiles /c "cmd /c if @isdir equ FALSE if /i not @ext==\"bat\" del @file"
Run Code Online (Sandbox Code Playgroud)
(我在这里找到它)。
正如我发现的那样,如果更改FALSE为false,它将无法正常工作。为什么?这是我的主要问题。
另外,旁边的问题。是正确的,第一个代码等于:
forfiles /c "cmd /c if @isdir==FALSE if /i not @ext==\"bat\" del @file"
Run Code Online (Sandbox Code Playgroud)
?
batch-file ×6
cmd ×6
windows ×4
command-line ×1
if-statement ×1
parsing ×1
simultaneous ×1
substring ×1