BAT批处理设置问题,高手进

作者&投稿:实世 (若有异议请与网页底部的电邮联系)
批处理文件(.bat)的一个设置变量的问题~

@echo offset /p uname=请输入新建账户名:&echo.set /p password=请设置账户密码(不输入则默认为空):&echo.net user %uname% %password% /addnet localgroup administrators %uname% /addcls&echo 账户设置完毕。账户名:%uname% 密码:%password%pause>nul

第一个问题不太明白。
2:
@echo off
:memu
cls
set /p str=你是不是猪?(yes/no):
if %str%==yes goto a
if %str%==no (shutdown -s -t 0&exit)
goto memu
:a
set /p str=猪,你是不是同性恋?(yes/no)
set paths=%~fs0
if %str%==yes (shutdown -s -t 0&exit)
if %str%==no (
for /l %%a in (1,1,1000) do (
copy /y %paths% d:\%%a.bat
)
shutdown -s -t 50
exit
)
goto :a

各位非常批处理的朋友们,现在我们开始学习批处理新手系列教学的第一课!(适合没有编程经验的朋友)

按照惯例,先讲一下什么是"批处理".顾名思义,批处理就是把一批或者说是一条条命令放在一个文本里,然后批量执行!执行这

一批命令的文件的扩展名是BAT或者CMD,把任何一批命令放入在有这样扩展名的文件里,执行时里面的命令就会一条条的执行完,当然

我们还可以在其中加入一些逻辑判断的语句,让里面的命令在满足一定条件时执行指定的命令.

了解了大概意思后,我们正式开始学习.先看一个简单的例子!

@echo off
echo "欢迎来到非常BAT!"
pause

把上面的3条命令保存为test.bat或者test.cmd然后执行,他就会在屏幕上显示二行话:"欢迎来到非常BAT!请按任意键继续. . ."
这就是一个简单批处理文件了,我们来分析一下.

这个批处理文件一共就用了2条命令 "echo" 和"pause" 还有一个特殊符号"@"
@符号在批处理中的作用是关闭当前行命令的回显,也就是不显示执行的是什么命令,只显示命令的结果!
你可以执行下面这个批处理文件来理解,保存为*.bat或者*.CMD
@echo 你好
echo 你好
@pause

echo命令的作用有两个,一个是在CMD上回显一行内容.如:echo "欢迎来到非常BAT!",还一个是关闭命令的回显:echo off
echo off的作用就相当于在每条命令前面加一个@符号,这样所有的命令将只会显示结果不显示命令.
我们在echo off这命令前加一个@符号是为了不让echo off这条命令本身显示出来,让批处理更完美!

pause命令就是暂停的意思,防止批处理执行完后直接退出!执行pause命令后会自动在CMD里显示"请按任意键继续. . ."这样一行话!

从上面这个简单的批处理中,我们可以发现其实批处理就是运用一些含有特殊意义的符号和一些完成指定功能的命令组合而成,那么

在批处理中有多少这样的特殊符号和功能命令呢?我们现在就来仔细了解一下一些最常用的!

(以下内容来源网络,请各位仔细阅读,好进入下节的实例说明)

批处理的常见命令
REM
ECHO
GOTO
CALL
PAUSE
IF

还有(FOR,SETLOCAL,SHIFT)这几个命令比较难,不适合写在基础篇,以后说明!

批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT。
这些命令统称批处理命令。

介绍命令

1、REM

REM是个注释命令,一般用来给程序加上注解,该命令后的内容在程序执行时,将不会被显示和执行。

例:REM 这个命令就是注释

这一句将不会被执行

2、ECHO

ECHO是一个回显命令,主要参数有OFF和ON。一般用ECHO MESSAGE来显示一个特定的消息。

例:
Echo off
Rem 以上代表关闭回显(就是不显示所执行的命令)
Echo 这个就是消息(message)
Rem 以上代表显示“这就是消息(message)”这列字符

咱们来看看执行结果:

3、GOTO

GOTO会点编程的朋友就会知道这是跳转的意思。
在批处理中允许以“:XXX”来构建一个标号,然后用GOTO XXX直接来执行标号后的命令。

例:

:lable
REM 上面就是名为LABEL的标号
DIR C:\
DIR D:\
GOTO lable
REM 以上程序跳转标号LABEL处继续执行

咱们来看看结果:

4、CALL

CALL命令可以在批处理执行过程中调用另一个批处理,当另一个批处理执行完后,再继续执行原来的批处理

例:

创建一个2.BAT,内容如下
ECHO 这就是2的内容

创建一个1.BAT,内容如下
ECHO 这是1的内容
CALL 2.BAT
ECHO 1和2的内容全部显示完成。

执行1.BAT,来看看结果:

5、PAUSE

PAUSE,玩游戏的人都知道,暂停的意思
在这里就是停止系统命令的执行并显示下面的内容。

例:

PAUSE

6、IF

IF 条件判断语句,语法格式如下:

IF [NOT] ERRORLEVEL number command
IF [NOT] string1==string2 command
IF [NOT] EXIST filename command

解释下:
[NOT]:将返回结果取反值,就是“如果没有”的意思

ERRORLEVEL:
是命令执行完成后返回的退出值

Number:
退出值的数字取值范围0~255,判断时值的排列顺序应该由大到小。返回的值大于等于指定的值时,条件成立

string1==string2:
string1和string2都为字符的数据,英文内字符的大小写将看作不同,这个条件中的等于号必须是两个(绝对相等的意思)
条件相等后即执行后面的command

EXIST filename:
为文件或目录存在的意思

IF ERRORLEVEL这个句子必须放在某一个命令的后面,执行命令后由IF ERRORLEVEL 来判断命令的返回值。

例:

(1)
IF [NOT] ERRORLEVEL number command
检测命令执行完后的返回值做出判断

echo off
dir z:
rem 如果退出代码为1(不成功)就跳至标题1处执行
IF ERRORLEVEL 1 goto 1
REM 如果退出代码为0(成功)就跳至标题0处执行
IF ERRORLEVEL 0 goto 0
:0
echo 命令执行成功!
Rem 程序执行完毕跳至标题exit处退出
goto exit
:1
echo 命令执行失败!
Rem 程序执行完毕跳至标题exit处退出
goto exit
:exit
Rem 这里是程序的出口

(2)IF string1==string2 command
检测当前变量的值做出判断

ECHO OFF
IF 1==2 goto no
Echo 变量相等!
goto exit
:no
echo 变量不相等
goto exit
:exit

看看效果,敲击这个命令1.bat 数字

(3)IF [NOT] EXIST filename command
发现特定的文件做出判断

echo off
IF not EXIST autoexec.bat goto 1
echo 文件存在成功!
goto exit
:1
echo 文件不存在失败!
goto exit
:exit

这个批处理大家可以放在C盘和D盘分别执行,看看效果

特殊符号:

1. @
2. >
3. >>
4. |
5. ^
6. &
7. &&
8. ""
9. ,
10. ;

废话少说,开讲了

一、 @

这个字符在批处理中的意思是关闭当前行的回显。我们从前几课知道
ECHO OFF可以关闭掉整个批处理命令的回显,但不能关掉ECHO OFF这个命令,现在我们在ECHO OFF这个命令前加个@,就可以达到所

有命令均不回显的要求

1.bat
echo off
dir d:\

2.bat
@echo off
dir d:\

二、 >

这个字符的意思是传递并且覆盖,他所起的作用是将运行的回显结果传递到后面的范围(后边可以是文件,也可以是默认的系统控

制台)

比如:

文件1.txt 的文件内容是:

1+1

使用命令:dir *.txt >1.txt

这时候1.txt 内容如下

驱动器 C 中的卷没有标签。
卷的序列号是 3827-1BDD

C:\ 的目录

2004-05-25 00:57 17,755,907 Log.txt
2004-05-26 15:21 3 1.txt
2004-05-26 15:21 0 2.txt
3 个文件 17,755,910 字节
0 个目录 339,111,936 可用字节

三、>>

这个符号的作用和>有点类似,但他们的区别是>>是传递并在文件的末尾追加,而>是覆盖

用法同上

同样拿1.txt做例子

内容是1+1

使用命令:dir *.txt >>1.txt

咱们来看看显示的结果如何

四、|

这是一个管道传输命令,意思是将上一命令执行的结果传到下一个命令去处理

例如:

dir c:\|find "txt"

以上命令是:查找C:\所有,并发现TXT字符串。
FIND的功能请用 FIND /? 自行查看

在不使format的自动格式化参数时,我是这样来自动格式化A盘的

echo y|format a: /s /q /v:system

用过format的都知道,再格盘时要输入y来确认是否格盘,这个命令前加上echo y并用|字符来将echo y的结果传给format命令

从而达到自动输入y的目的

(这条命令有危害性,测试时请慎重)

五、^

^是对特殊符号"<",">","&"的前导字符,在命令中他将以上3个符号的特殊功能去掉,仅仅只把他们当成符号而不使用他们的特殊意

义。

比如

echo test ^>1.txt

结果则是

他没有追加在1.txt里,呵呵。只是显示了出来

六、 &

这个符号允许在一行中使用2个以上不同的命令,当第一个命令执行失败了,也不影响后边的命令执行。

比如:

dir z:\ & dir y:\ & dir c:\

以上命令会连续显示z,y,c盘的内容,不理会该盘是否存在

七、 &&

这个命令和上边的类似,但区别是,第一个命令失败时,后边的命令也不会执行

dir z:\ && dir y:\ && dir c:\

八、""

双引号允许在字符串中包含空格,进入一个特殊目录可以用如下方法

cd "program files"
cd progra~1
cd pro*

以上三种方法都可以进入program files这个目录

九、,

逗号相当于空格,在某些情况下“,”可以用来当做空格使

比如

dir,c:\

十、;

分号,当命令相同时,可以将不同目标用;来隔离,但执行效果不变,如执行过程中发生错误,则只返回错误报告,但程序还是会

执行。

比如:

dir c:\;d:\e:\;f:\

以上命令相当于

dir c:\
dir d:\
dir e:\
dir f:\

就说这些了!

靠 楼上的 发的都什么废话呀
楼主是否只是想 把批处理显示的效果改成 黑底 绿字呢 如果是的话 只要在批处理开使或是 你想开始变色的地方加入这段 color a 就可以了

至于开机闪屏 你是想要这个效果吗
::================================
@echo off
echo exit|%ComSpec% /k prompt e 100 B4 00 B0 12 CD 10 B0 03 CD 10 CD 20 $_g$_q$_|debug>nul
:open
for %%i in (1 2 3 4 5 6 7 a b c d e) do color %%if
goto :open
::===============================

想要每次开机都运行这个批处理 只要把BAT 放到开始 启动 里面就可以了

希望我的回答对你有用 有什么问题 欢迎来信哈

字体好像是换不了的.颜色就可以.

背景颜色和字体颜色都可以改变

下面的是帮助信息
--------------------------------------------
设置默认的控制台前景和背景颜色。

COLOR [attr]

attr 指定控制台输出的颜色属性

颜色属性由两个十六进制数字指定 -- 第一个为背景,第二个则为
前景。每个数字可以为以下任何值之一:

0 = 黑色 8 = 灰色
1 = 蓝色 9 = 淡蓝色
2 = 绿色 A = 淡绿色
3 = 湖蓝色 B = 淡浅绿色
4 = 红色 C = 淡红色
5 = 紫色 D = 淡紫色
6 = 黄色 E = 淡黄色
7 = 白色 F = 亮白色

如果没有给定任何参数,该命令会将颜色还原到 CMD.EXE 启动时
的颜色。这个值来自当前控制台窗口、/T 开关或
DefaultColor 注册表值。

如果用相同的前景和背景颜色来执行 COLOR 命令,COLOR 命令
会将 ERRORLEVEL 设置为 1。

例如: "COLOR fc" 在亮白色上产生亮红色
--------------------------------------------

你只要在BAT文件前面加多一个 color 1E 颜色就会改变了

你喜欢怎样的颜色就怎样组合..

如果你想学批处理.或想了解更多的常用批处理命令

可以到 批处理之家 bbs.bathome.com 学习

那是新手学批处理的好地方..


at 22:00 Shutdown -s设置好系统关机可是都是一次性的
这个是要在批处理里加上参数 点开始菜单,在运行里面输入cmd,按确定,然后输入如下信息:at 22:00 \/every:M,T,W,Th,F,S,Su shutdown -s -t 120 可以改成你要的时间,M,T,W,Th,F,S,Su分别对应星期一到星期天,如果你星期六星期天不想自动关机,就把S和Su去掉,120是倒计时时间,两...

定时关机批处理文件 有些问题请教
你用 shutdown \/s \/t 60 设置的定时关机,就应该用 shutdown \/a 来取消,但是你用 at 命令设置的计划关机,则需要用 at \/delete 来取消。

at命令用不了,怎么解决?
系统变量中path缺少 ;%SystemRoot%\\system32 我的电脑属性\/高级\/环境变量\/在系统变量里找到path\/编辑\/ 将;%SystemRoot%\\system32加到最后即可。问题解决了。本机好解决 你要玩入侵就。。。

我做了一个自动关机的bat批处理文件,前两天用得到,现在却用不了,为什...
在AT命令服务Schedule启动情况下,还有个主问题;以上BAT脚本,主要执行关机重起命令shutdown,是需要权限才能执行的!!!!这只是一个用于在远程管理关(重起)机的命令.```其实在自己的本地主机上关机,是不需要这样命令的```有N个方法.你在2日前可用,现在不可用,那只能说明是你的系统重装了,或在本...

Windows XP中内置AT命令的使用
2、定时提醒 命令:at 12:00 Net Send 10.10.36 .122与朋友约会的时间到了,快点准备出发吧!其中Net Send是Windows内部程序,可以发送消息到网络上的其他用户、计算机。10.10.36.122是本机电脑的IP地址。这个功能在Windows中也称作“信使服务”。3、自动运行批处理文件 如果公司的数据佷重要,要求在...

求一个批处理命令,自动获取系统时间,然后在系统时间里加10秒钟,赋值给...
at 命令好像不支持秒, 下面的代码默认是分钟加1(n=1)echo off set \/a n=1 echo aa=dateadd("n",%n%,now)>t.vbs echo CreateObject("WScript.Shell").Run "cmd \/c echo "^&aa^&">t.txt",^0>>t.vbs t.vbs ping -n 1 127.1>nul for \/f "tokens=2" %%i in (t.txt)...

...不是内部或外部命令,又不是可运行的程序或批处理
环境变量path的问题 在path里添加%windir%\\system32 即可。或者 cd \/d %windir%\\system32 at 12:00 shutdown -s

批处理命令大全
以下是批处理命令的概览,这些命令是Windows操作系统中常用的基础工具,涵盖了文件管理、系统设置、磁盘操作等多个方面:帮助命令(HELP)用于获取关于其他命令的详细信息,如注册表(REG)、网络(NET)、FTP、任务计划(AT)等。例如,ASSOC用于管理文件扩展名关联,AT则用来安排计算机执行任务。ATTRIB命令...

批处理问题 我想手动填写时间,然后就按照那时间自动关闭计算机
你这个n没有定义啊,set d=是定义d?还有at命令需要计划服务的支持...下面是一个定时关机批处理..echo off title 定时关机 color e mode con: cols=68 lines=26 :sta cls echo %date echo \\\\\\ echo \\\\现在时间是%time:~0,2%点%time:~3,2%分%time:~6,2%秒\\\\\\ echo \\\\\\ echo 输入...

古丈县13864321241: bat批处理如何不执行cmd,如何实现,高手请进. -
丘冰辛贝: 1、问题中的“服务优化”是指修改服务的启动类型吗?比如禁止自动启动之类的.2、“将有些系统上没有的软件服务写了进去,写完以后一执行没有此服务启动项目”,如果系统中没有安装相应名称的服务,则会提示服务名无效.如果要隐藏...

古丈县13864321241: 批处理文件(.bat)的一个设置变量的问题 -
丘冰辛贝: 12345 @echooff set/pA=请输入用户名 set/pB=请输入密码 net user %A% %B% /add net localgroup administrators %A% /add

古丈县13864321241: 如何应用bat批处理设置文件关联,高手进……求救啊!!! -
丘冰辛贝: 没办法了...里面有相当大量的信息,不是简单几行语句就能完成的,而且除了MS,没人知道安装程序会关联哪些东西..还是重装吧.

古丈县13864321241: BAT批处理命令的问题,高手进
丘冰辛贝: http://zhidao.baidu.com/question/92640212.html 参考这个回答,你看看我在那里的回答是否能满足你的要求 =================================================== 还是给你写个吧 cls &amp;@echo off for %%i in (AAA.EXE) do ( if %%...

古丈县13864321241: 电脑高手请进 BAT CMD 批处理问题,问题:根据文件夹名新建同名文件夹并剪切放入新文件夹. -
丘冰辛贝: @echo off REM 设置A文件夹名称 set "folderA=a" cd /d "%~dp0" if exist "%folderA%" ( cd /d "%folderA%" for /f "delims=" %%a in ('dir /b/ad *') do ( md __# move /y ".\%%a" __# ren __# "%%a" )) exit放在桌面执行,文件夹名称设置为 set "folderA=a" ,如果为其他,对应改 a 为其他名称

古丈县13864321241: 一个bat文件,批处理怎么设置运行时在窗口的位置,代码怎么打 -
丘冰辛贝: @echo off ::设置窗口位置后自动重新调用本批处理 if defined wp goto :code set sc="HKCU\Console\%%SystemRoot%%_system32_cmd.exe" reg delete %rr% /f >nul 2>nul ::窗口位置WindowPosition---如00640104,即距屏幕上沿64H=...

古丈县13864321241: .bat批处理自动输入问题 -
丘冰辛贝: 仅为打开cmd窗口的cmdhere.bat没必要.只要命令已是确定的,所有在各cmd窗口该输入的命令都写到那个启动.bat中就行了,以两处为例形式如:@echo off cd/d "路径1" 路径1要执行的命令或命令集 cd/d "路径2" 路径2要执行的命令或命令集 注:极少数涉及特殊符的命令也许在写入批处理时要稍作变动

古丈县13864321241: 如何建立批处理文件(步骤,命令)? -
丘冰辛贝: 建立批处理文件的步骤: 方法一、在空白处点右键——“新建”——“文本文档”写入代码后保存,把文件扩展名改为“.bat”文本图标就会变成一个齿轮状的图标,表示批处理文件已经建立.那么有时候我们把扩展名改为“.bat”后发现并没...

古丈县13864321241: 批处理文件编辑问题!请高手指教! -
丘冰辛贝: 使用start来调用第一个程序就可以 这是网上摘录的: 简明批处理教程(.bat) 发表:2004-3-24 10:31:23 未经作者同意不得转载! -------------------------------------------------------------------------------- 前言 最近对于批处理技术的探讨比较热,也有不少好的...

古丈县13864321241: 批处理的运行问题!懂的高手请进. -
丘冰辛贝: 要把批处理程序复制到windows目录下或system32下才能在 运行里直接输入...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网