批处理命令 中%ComSpec%是什么意思? 在批处理中%是什么意思 作用

作者&投稿:弥钟 (若有异议请与网页底部的电邮联系)
%comspec%
打开一个命令行窗口。%comspec% 是一个指向当前命令行外壳的环境变量。通过使用 %comspec%,您不必担心命令行外壳是 cmd.exe 还是 command.exe;%comspec% 会自动选择正确的一个。

%ComSpec%是变量,ComSpec 是变量名。批处理命令或许多脚本语言都是用%[字符]%来表示变量的.

这个是系统默认的变量名,更多系统变量可以用set命令查看
你在cmd里输入 echo %ComSpec%就可以查看了
%ComSpec%一般指向你cmd.exe的路径,比方说d:\windows\system32\cmd.exe

这是一个叫ComSpec的变量啊,自己设置的

我也不知道,但是我能教你!在“运行”里面输ComSpec就知道了!你试一下。

批处理命令中 %%a 是什么意思?~

你所看到的应该是局部的一小块代码,一般是嵌套在For语句中使用的,其作用在帮助"Set /?"中有叙述,它是"延迟环境变量".是在循环过程中取代%原有的作用,将循环体中被调用的值保留循环内所做过的修改.具体要做些试验,帮助中已经有了.
第二句的黑黑本应是ASCII的08(\b),也就是退格键,吃掉换行符,也就是不换行继续输出,目的是和下面的一句配合逐步吃掉前面的字符然后重新输出一个,加上Ping的延时作用减速输出,效果是模拟进度条.

代码参见:

===========================
set /p=!str:~%%i,1!<nul
取循环内更换过值的str的第i位起的1个字符给回显,并继续从空设备提取信息给回显(非文本输出的输出结尾会形成没有字符没有回车/换行的结尾,结果是输出信息但不换行),目的不是set,而是借助set输出一个字符.

如果是 %a% 这种形式 ,就是变量的引用,
@echo off
set a=123 rem定义一个变量a 赋值为123
echo %a% rem显示出变量a的值(如果不加% %系统会把a当字符处理了,不会当成变量的)

%%i 这种变量是for 语句里面 特有的变量(还有一种是外部变量,接受外部参数的格式是%1 -%9 共9个变量),只有在批处理里面才写 两个 %% 号表示变量,cmd中只用 一个 % 号。反正只要你在批处理文件里面用 for,变量就用 %%。例如
批处理中的写法
for %%i in (1 2 3 4 5 ) do echo %%i
为什么批处理中用两个 %%,其实是编译器编译的时候要屏蔽一个%

在cmd窗口中写法
for %i in (1 2 3 4 5 ) do echo %i

现在说下外部变量,是系统制定的,只有9个,专门保存外部参数的,就是运行批处理时加的参数。只有 %1 %2 %3 %4 ...... %9
例如

@echo off
echo %1
echo %2
echo %3
echo %4

将上面的代码复制到记事本。保存格式为 bat
现在怎样传递参数给这个批处理,如下
在开始》运行 里面输入 cmd 确定
在弹出来的窗口中 输入 上面 批处理文件 的 完全路径名,然后就加要传递的参数了 例如 c:ext.bat aaaa bbbb cccc dddd eeeee
上面 aaaa bbbb cccc dddd eeeee
就是传递给 批处理 “参数”这些参数 会保存在 %1至 %9 这9个变量名,最多只能保存 9 个。运行下就知道了,上面批处理文件中 %1变量保存的是aaaa
%2 保存的是 bbbb
%3 保存的是 cccc
%4 保存的是 dddd
%5 是 eeee 上面没有用到 %5变量