我正在尝试在批处理文件中定义和使用变量.它看起来应该很简单:
@echo off
set location = "bob"
echo We're working with "%location%"
Run Code Online (Sandbox Code Playgroud)
我得到的输出如下:
We're working with ""
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?为什么我的变量没有被回应?
我遇到了ss64.com,它为如何编写Windows命令解释器将运行的批处理脚本提供了很好的帮助.
但是,我一直无法找到批处理脚本的语法,扩展或不扩展的方法,以及如何逃避事情的良好解释.
以下是我无法解决的示例问题:
foreach $i (@ARGV) { print '*' . $i ; }
),编译它并以这种方式调用它:
my_script.exe "a ""b"" c"
?输出是 *a "b*c
my_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%
我正在创建一个批处理文件,其中包含一些简单的命令来从系统中收集信息.批处理文件包含获取时间,IP信息,用户等的命令.
我在批处理文件中组装了所有命令,然后运行,但是我希望批处理文件在运行时将结果输出到文本文件(日志).是否有可以添加到批处理中的命令?
请记住,我不想从cmd运行批处理,然后重定向输出; 如果可能,我想重定向批处理内部的输出.
当我运行此脚本时(来自.bat文件):
set var1=true
if "%var1%"=="true" (
set var2=myvalue
echo %var2%
)
Run Code Online (Sandbox Code Playgroud)
我总是得到:
ECHO is on.
Run Code Online (Sandbox Code Playgroud)
意思是var2
变量没有真正设置.谁能帮助我理解为什么?
有没有办法在Windows批处理文件中编写IF或IF条件语句?
例如:
IF [%var%] == [1] OR IF [%var%] == [2] ECHO TRUE
Run Code Online (Sandbox Code Playgroud) 我有一个post-build事件,它为ac#project运行一些命令.最后一个命令有时会导致ERRORLEVEL值不等于零,然后构建失败.
我想附加一行额外的命令来始终将ERRORLEVEL值设置为零.最方便的方法是什么?
我正在玩cmd.exe,但在它的帮助下我没有找到任何信息,如何定义数组.
我发现,如何定义简单变量:
set a=10
echo %a%
Run Code Online (Sandbox Code Playgroud)
但是,我想创建数组,链表等...
那么,它能否在cmd.exe中使用(我的意思是:cmd.exe中是否存在任何数组关键字?)
我想实现一些算法:
等等...
所以,我也想知道,Cmd.exe是否有引用或实例,结构等?
导致其帮助不完整:/?
可以通过图灵机定义将Cmd.exe定义为完整吗?(图灵完成)
如果从bat文件内部调用了另一个批处理文件但仍有一些剩余的操作要完成,那么如何确保对第一个bat文件的调用将在完成或错误之后,将返回到第一个调用它的文件中实例?
例:
CD:\MyFolder\MyFiles
Mybatfile.bat
Copy afile toHere
Run Code Online (Sandbox Code Playgroud)
要么
CD:\MyFolder\MyFiles
CALL Mybatfile.bat
COPY afile toHere
Run Code Online (Sandbox Code Playgroud)
什么是两者的区别CALL
或START
或者他们都不在呢?这会对是否会返回复制命令的结果产生影响吗?
有时我在cmd中运行命令,例如:
fc/b file1 file2
并希望看到来自fc的返回码.有一个简单的方法吗?
cmd ×10
batch-file ×9
windows ×7
errorlevel ×2
arrays ×1
call ×1
command-line ×1
conditional ×1
dos ×1
if-statement ×1
parsing ×1
return-code ×1