社区
Windows Server
帖子详情
.bat文件问题,在线等答案结帐
pmaster
2004-09-22 02:34:52
我想在.bat文件里写这么一个功能:
运行这个.bat文件后,
当我按键盘rr的时候,xcopy一个目录
可以当我不按rr,按tt的时候xcopy 另一个目录
请问如何实现??
...全文
148
21
打赏
收藏
.bat文件问题,在线等答案结帐
我想在.bat文件里写这么一个功能: 运行这个.bat文件后, 当我按键盘rr的时候,xcopy一个目录 可以当我不按rr,按tt的时候xcopy 另一个目录 请问如何实现??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
21 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
funsuzhou
2004-09-23
打赏
举报
回复
学习
bill1980
2004-09-23
打赏
举报
回复
關注學習ing
spark_li
2004-09-23
打赏
举报
回复
赫赫,可以用set /p 来输入参数
例如下面的。
@echo off
set /p cmdx=
if %cmdx%==rr goto cmda
if %cmdx%==bb goto cmdb
goto :EOF
:cmda
echo hehe
goto :EOF
:cmdb
echo haha
panshiwu
2004-09-23
打赏
举报
回复
VBS文件和 .bat 不是一样的道理吗? 你把我写的那段 copy下来, 存成一个 *.vbs 文件. 双击执行就可以了. VBS属于脚本.
19990805
2004-09-23
打赏
举报
回复
这样的批处理有何意义?但如果一定要,就按 phchenjie(【烦人】) 老兄说的那样,建两个批处理。
pmaster
2004-09-23
打赏
举报
回复
不行的
凤凰
2004-09-23
打赏
举报
回复
windows 2k开始,其实很多东西都有了扩展 :)
凤凰
2004-09-23
打赏
举报
回复
显示、设置或删除 cmd.exe 环境变量。
SET [variable=[string]]
variable 指定环境变量名。
string 指定要指派给变量的一系列字符串。
要显示当前环境变量,键入不带参数的 SET。
如果命令扩展名被启用,SET 会如下改变:
可仅用一个变量激活 SET 命令,等号或值不显示所有前缀匹配
SET 命令已使用的名称的所有变量的值。例如:
SET P
会显示所有以字母 P 打头的变量
如果在当前环境中找不到该变量名称,SET 命令将把 ERRORLEVEL
设置成 1。
SET 命令不允许变量名含有等号。
在 SET 命令中添加了两个新命令行开关:
SET /A expression
SET /P variable=[promptString]
/A 命令行开关指定等号右边的字符串为被评估的数字表达式。该表达式
评估器很简单并以递减的优先权顺序支持下列操作:
() - 分组
! ~ - - 一元运算符
* / % - 算数运算符
+ - - 算数运算符
<< >> - 逻辑移位
- 按位“与”
^ - 按位“异”
| - 按位“或”
= *= /= %= += -= - 赋值
&= ^= |= <<= >>=
, - 表达式分隔符
如果您使用任何逻辑或取余操作符, 您需要将表达式字符串用
引号扩起来。在表达式中的任何非数字字符串键作为环境变量
名称,这些环境变量名称的值已在使用前转换成数字。如果指定
了一个环境变量名称,但未在当前环境中定义,那么值将被定为
零。这使您可以使用环境变量值做计算而不用键入那些 % 符号
来得到它们的值。如果 SET /A 在命令脚本外的命令行执行的,
那么它显示该表达式的最后值。该分配的操作符在分配的操作符
左边需要一个环境变量名称。除十六进制有 0x 前缀, 八进制
有 0 前缀的,数字值为十进位数字。因此, 0x12 与 18 和 022
相同。请注意八进制公式可能很容易搞混: 08 和 09 是无效的数字,
因为 8 和 9 不是有效的八进制位数。
/P 命令行开关允许将变量数值设成用户输入的一行输入。读取输入
行之前,显示指定的 promptString。promptString 可以是空的。
环境变量替换已如下增强:
%PATH:str1=str2%
会扩展 PATH 环境变量,用 "str2" 代替扩展结果中的每个 "str1"。
要有效地从扩展结果中删除所有的 "str1","str2" 可以是空的。
"str1" 可以以星号打头;在这种情况下,"str1" 会从扩展结果的
开始到 str1 剩余部分第一次出现的地方,都一直保持相配。
也可以为扩展名指定子字符串。
%PATH:~10,5%
会扩展 PATH 环境变量,然后只使用在扩展结果中从第 11 个(偏
移量 10)字符开始的五个字符。如果没有指定长度,则采用默认
值,即变量数值的余数。如果两个数字(偏移量和长度)都是负数,
使用的数字则是环境变量数值长度加上指定的偏移量或长度。
%PATH:~-10%
会提取 PATH 变量的最后十个字符。
%PATH:~0,-2%
会提取 PATH 变量的所有字符,除了最后两个。
终于添加了延迟环境变量扩充的支持。该支持总是按默认值被
停用,但也可以通过 CMD.EXE 的 /V 命令行开关而被启用/停用。
请参阅 CMD /?
考虑到读取一行文本时所遇到的目前扩充的限制时,延迟环境
变量扩充是很有用的,而不是执行的时候。以下例子说明直接
变量扩充的问题:
set VAR=before
if "%VAR%" == "before" (
set VAR=after
if "%VAR%" == "after" @echo If you see this, it worked
)
不会显示消息,因为在读到第一个 IF 语句时,BOTH IF 语句中
的 %VAR% 会被代替;原因是: 它包含 IF 的文体,IF 是一个
复合语句。所以,复合语句中的 IF 实际上是在比较 "before" 和
"after",这两者永远不会相等。同样,以下这个例子也不会达到
预期效果:
set LIST=
for %i in (*) do set LIST=%LIST% %i
echo %LIST%
原因是,它不会在目前的目录中建立一个文件列表,而只是将
LIST 变量设成找到的最后一个文件。这也是因为 %LIST% 在
FOR 语句被读取时,只被扩充了一次;而且,那时的 LIST 变量
是空的。因此,我们真正执行的 FOR 循环是:
for %i in (*) do set LIST= %i
这个循环继续将 LIST 设成找到的最后一个文件。
延迟环境变量扩充允许您使用一个不同的字符(惊叹号)在执行
时间扩充环境变量。如果延迟的变量扩充被启用,可以将上面
例子写成以下所示,以达到预期效果:
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%
如果命令扩展名被启用,有几个动态环境变量可以被扩展,但
不会出现在 SET 显示的变量列表中。每次变量数值被扩展时,
这些变量数值都会被动态计算。如果用户用这些名称中任何
一个定义变量,那个定义会替代下面描述的动态定义:
%CD% - 扩展到当前目录字符串。
%DATE% - 用跟 DATE 命令同样的格式扩展到当前日期。
%TIME% - 用跟 TIME 命令同样的格式扩展到当前时间。
%RANDOM% - 扩展到 0 和 32767 之间的任意十进制数字。
%ERRORLEVEL% - 扩展到当前 ERRORLEVEL 数值。
%CMDEXTVERSION% - 扩展到当前命令处理器扩展名版本号。
%CMDCMDLINE% - 扩展到调用命令处理器的原始命令行。
凤凰
2004-09-23
打赏
举报
回复
spark_li(晕忽忽(恶人谷:通讯连长))
@echo off
SET /p cmdx=
if %cmdx%==rr goto cmda
if %cmdx%==bb goto cmdb
goto :EOF
:cmda
echo hehe
goto :EOF
:cmdb
echo haha
-------------------------------------
厉害 :)
celerylhl
2004-09-23
打赏
举报
回复
费这劲干嘛? 要想实现复杂的功能,用VBS呀!
pmaster
2004-09-23
打赏
举报
回复
输入不了呀
xjp6688
2004-09-23
打赏
举报
回复
到DOS之家看看
spark_li
2004-09-23
打赏
举报
回复
嗬嗬,你让我怎么说好呢,
你要修改我的bat文件啊,
我只是演示如何输入参数,
你要copy,在:cmda段和:cmdb段修改就可以了啊。
pmaster
2004-09-23
打赏
举报
回复
panshiwu(龙飒)
你的也不行,copy不了文件的
pmaster
2004-09-23
打赏
举报
回复
spark_li(晕忽忽(恶人谷:通讯连长))
@echo off
SET /p cmdx=
if %cmdx%==rr goto cmda
if %cmdx%==bb goto cmdb
goto :EOF
:cmda
echo hehe
goto :EOF
:cmdb
echo haha
不行的
tjzym
2004-09-23
打赏
举报
回复
up
darkliu
2004-09-22
打赏
举报
回复
建两个bat文件不就行了吗?
pmaster
2004-09-22
打赏
举报
回复
.bat文件行吗
panshiwu
2004-09-22
打赏
举报
回复
key=(inputbox("输入指令","test",""))
select case key
Case "rr"
msgbox(" 好了")
Case "tt"
msgbox(" 不行")
End Select
这是个VBS 文件
phchenjie
2004-09-22
打赏
举报
回复
为什么不建两个批处理文件来实现呢?rr.bat,tt.bat
加载更多回复(1)
Windows脚本
bat
-
文件
批处理基础教程
1.认识批处理基础命令 2.通过实战批量处理
文件
3.了解
bat
基础知识和用法 4.了解Windows命令行
计算机会计期末试题及
答案
,会计电算化模拟试题及
答案
会计电算化模拟试题及
答案
为帮助大家更好备考会计电算化考试,百分网小编为大家分享最新的会计电算化模拟试题及
答案
,希望对大家考试有所帮助!一、单项选择题(在每小题给出的四个备选
答案
中,只有一个正确的
答案
,每小题1分,共20分)1.下面一组均是可执行
文件
扩展名的是( )。A.Com、exe、
bat
B.txt、
bat
、exeC.sys、Corn、exeD.bas、
bat
、Corn2.目前,计算机正向着巨...
英语词汇表
A a (an) art. 一(个、件……) abandon v. 放弃,抛弃 ability n. 能力; 才能 able a. 能够;有能力的 abnormal a. 不正常的 aboard prep. 在(或上)船,飞机,火车等 abolish v. 废除 abortion n. 流产 about ad. 大约;到处;四处prep. 关于;
NOSQL数据库习题
mongodb习题测试
JavaWeb-新版
JavaWeb 参考文章: https://heavy_code_industry.gitee.io/code_heavy_industry/pro001-javaweb/lecture/ 01、Web基础概念简介 1、服务器与客户端 线下的服务器与客户端 线上的服务器与客户端 客户端的各种形式 PC端网页 移动端 Iot设备 服务器的各种形式 参考文章:https://heavy...
Windows Server
6,850
社区成员
178,035
社区内容
发帖
与我相关
我的任务
Windows Server
Windows 2016/2012/2008/2003/2000/NT
复制链接
扫一扫
分享
社区描述
Windows 2016/2012/2008/2003/2000/NT
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章