在命令提示符下使用SET命令时,%和!意思是,例如
set VAR=before
if "%VAR%" == "before" (
set VAR=after
if "!VAR!" == "after" @echo If you see this, it worked)
set LIST=
for %i in (*) do set LIST=!LIST! %i
echo %LIST%
注意%i和!VAR是怎样的!这是什么意思,%i不能成为一个变量吧?因为变量写得像%variable%。
这些是什么想法? (*)也只是文字吗?
问候,S
答案 0 :(得分:0)
在正常情况下,您可以通过将其名称括在%
:
set var=a
echo %var%
当有&
的命令组合或括号中放入一些命令时,set
将在所有命令执行后生效。然后need delayed expansion to access your variable并附上它与!
setlocal enableDelayedExpansion
if exist c:\ (
set var2=a
echo !var2!
)
仔细查看SET命令。
在for循环中,你有一个特殊的变量只能在for命令的上下文中运行 - 一个在循环的每次迭代中改变其值的标记:for /f "delims=" %%# in ('set') do echo %%#
here are the letters that you can use as tokens。请注意 - 您需要在脚本和命令提示符中使用双%
。
还有一种类型的变量只在开头有%
- 传递给脚本(或子程序)的参数 - 可以用数字(或数字)来访问 - 从%0
到{ {1}}其中%9
是脚本本身的名称。