@本身就是一条指令,意思是跟在它后面的指令的执行及结果都不会在DOS界面上显示出来,当然只是它所在的那一行有效,另起一行的指令@将不再有效。
::以java调用为例
for /f %%i in ( 'java -jar LogAnalysis.jar ') do @set var=%%i
有时其他程序的输出不是标准输出,可以能要重定向才好
@echo off echo 正在检测jdk环境 ::这里为什么是标准错误输出我也不清楚。。 java -version 2>c:\var\deployWin32\echojdk.txt for /f %%i in (c:\var\deployWin32\echojdk.txt) do @set varA=%%i ::若存在 jdk,那么varA以Java打头 if %varA%==Java (goto theFinishInstall) else (goto theInstall) :theInstall echo 即将安装jdk start c:\var\deployWin32\programs\jdk.exe goto theEnd :theFinishInstall echo jdk已安装完成 :theEnd pause获取标准输入,与用户交互
@echo off set /p a=请输入昵称 echo 您的<span style="font-family: Arial, Helvetica, sans-serif;">昵称为 </span><span style="font-family: Arial, Helvetica, sans-serif;">%a%</span> ::pause为按任意键退出 效果 pause