Board logo

标题: [求助]学习批处理的几个问题 [打印本页]

作者: 一杯未尽    时间: 2004-11-10 00:22     标题: [求助]学习批处理的几个问题

1、CALL命令
(1)call 命令调用不在同目录下的批处理程序的格式是什么?下面的我都试过,
都不行啊:
    call c:\documents and settings\ b.bat
    call [c:] [documents and settings] b.bat
    call [c:\documents and settings] b.bat
   不是提示格式不对就是说"c:\documents 不是批处理程序或可执行文件"
(2)call 能不能调用另一个批处理程序中的标号呢(就是只执行标号后面的那些
程序,而不执行之前的程序)
2、START命令
(1)start 命令启动应用程序时的参数格式是什么样的
        比如min参数(开始时最小化)现在
        start qq /min      
        start qq /min 都不能使启动的qq登陆窗口最小化啊!
(2)当命令、程序需要相应的参数的时候,start 如何传送,具体格式是什么?
3、CHOICE命令
为什么用choice命令时它提示说choice 不是批处理程序或可执行文件,也不是
内部和外部命令呢?是我的命令编得不对吗:
@echo on
choice /c:sme start-qq,mem,end
if errorlevel 3 goto start-qq
if errorlevel 2 goto mem
if errorlevel 1 goto end
:start-qq
start qq
goto end
:mem
mem
goto end
:end
echo i succeed!!!

作者: 一杯未尽    时间: 2004-11-10 00:28     标题: [求助]学习批处理的几个问题

身边也没有朋友一起学这个,就只有请教网的高手们了。
谢谢!!!
作者: zhangyw258    时间: 2004-11-10 08:18     标题: [求助]学习批处理的几个问题

1
(1)你试试把那个批处理文件换到别的盘里去
     例如换到D:\里看看
(2)不行
2
(1)启动另一个窗口运行指定的程序或命令。
START ["title"] [/Dpath] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
      [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
      [/WAIT] [/B] [command/program]
      [parameters]
    "title"     在窗口标题栏中显示的标题。
    path        起始目录
    B           在不创建新窗口的情况下开始应用程序。 除非
                启动 ^C 处理,否则该应用程序会忽略 ^C 处理;
                 ^Break 是唯一可以中断该应用程序的方式
    I           新环境是传递给 cmd.exe 的原始环境,
                而不是当前环境
    MIN         开始时窗口最小化
    MAX         开始时窗口最大化
    SEPARATE    在分开的空间内开始 16 位 Windows 程序
    SHARED      在分共享的空间内开始 16 位 Windows 程序
    LOW         在 IDLE 优先级类别开始应用程序
    NORMAL      在 NORMAL 优先级类别开始应用程序
    HIGH        在 HIGH 优先级类别开始应用程序
    REALTIME    在 REALTIME 优先级类别开始应用程序
    ABOVENORMAL 在 ABOVENORMAL 优先级类别开始应用程序
        BELOWNORMAL 在 BELOWNORMAL 优先级类别开始应用程序
    WAIT        启动应用程序并等候它结束
    command/program
                如果是内部 cmd 命令或批文件,那么该命令处理器是用 /K 命令选项运行 cmd.exe 的。这表示该窗口在命令运行后仍然存在。
                如果不是内部 cmd 命令或批文件,则是一个程序,并作为窗口应用程序或控制台应用程序运行。
    parameters  这些为传送到命令/程序的参数

如果命令扩展名被启用,通过命令行或 START 命令的外部命令调用会如下改变:
将文件名作为命令键入,非可执行文件可以通过文件关联调用。(例如, WORD.DOC 会调用跟 .DOC 文件扩展名关联的应用程序)。关于如何从命令脚本内部创建这些关联,请参阅 ASSOC 和FTYPE 命令。
执行的应用程序是 32-位 GUI 应用程序时,CMD.EXE 不等应用程序终止就返回命令提示。如果在命令脚本内执行,该新行为则不会发生。
如果执行的命令行的第一个符号是不带扩展名或路径修饰符的字符串 "CMD","CMD" 会被COMSPEC 变量的数值所替换。这防止从当前目录抓出 CMD.EXE。
如果执行的命令行的第一个符号没有扩展名,CMD.EXE 会使用PATHEXT 环境变量的数值来决定要以什么顺序寻找哪些扩展名。PATHEXT 变量的默认值是:
        .COM;.EXE;.BAT;.CMD
    请注意,该语法跟 PATH 变量的一样,分号隔开不同的元素。
查找可执行文件时,如果没有相配的扩展名,看一看该名称是否与目录名相配。如果确实如此,START 会在那个路径上调用Explorer。如果从命令行执行,则等同于对那个路径作 CD /D。
(2)
我也不懂
我想是ASCII码的形式吧(我瞎猜的)
作者: zhangyw258    时间: 2004-11-10 08:20     标题: [求助]学习批处理的几个问题

我没有听过有CHOICE命令这个的
所以帮不了你的忙
不好意思
作者: 冷笑一刹那    时间: 2004-11-10 14:15     标题: [求助]学习批处理的几个问题

我也是
帮不鸟忙
作者: 飞鸟设计    时间: 2004-11-10 16:59     标题: [求助]学习批处理的几个问题

顶上来,会的解决。
作者: 飛鳥    时间: 2004-11-10 18:46     标题: [求助]学习批处理的几个问题

格式明显不对   那里有空格应该用引号括起来
为了简便 建议放到根目录下 或者其他好记得目录
不能 你可以另用一文件完成 举个小例子
==========netsend.bat===========
:send
net send ip hello
goto send
================================
令起一文件在调用

作者: 一杯未尽    时间: 2004-11-11 00:49     标题: [求助]学习批处理的几个问题

谢谢大家的回答!感觉动力好足啊!!
现在1、(1)是知道怎么回事了:只要在路径上加上引号就可以了(请看此帖的也不太懂批处理的朋友注意一下:要在引用和被引用的两个路径上都加引号哦!)
其他的问题我是不是没问清楚呢?
1、(2)楼上飞鸟说的方法我看不懂。是不是新建了这样一个netsend.bat,就可用调用另一个批处理文件中的:send了吗?但好像这样也不行啊,请再说明白一点吧。
2、(1)zhangyw258的回答里是不是没有说为什么start qq /min 不能使启动的qq登录窗口最小化的问题呢?我也试了一下start /min qq 也还是不能最小化。
等待高手解答其余问题……
再次感谢你们付出自己的时间而作的回答!!!非常谢谢!!!
作者: 一杯未尽    时间: 2004-11-11 01:23     标题: [求助]学习批处理的几个问题

现在才知道的,赶紧补上:CHOICE  不是内部命令和WIINDOWS 自带的外部命令,而是一个小DOS 工具 ,用来做选择的。所以没有这个工具就用不了choice这个命令了。
就这样了。

作者: 刺客    时间: 2004-11-11 08:34     标题: [求助]学习批处理的几个问题

没说清楚  
=========netsend.bat==========
net view
:send
net send ip hello
goto send
==============================
只能把标号后面的另存为一个BAT 比如send.bat
========send.bat=============
:send
net send ip hello
goto send
=============================
========call.bat==============
call send.bat
==============================
就是这个意思了


作者: 一杯未尽    时间: 2004-11-11 10:45     标题: [求助]学习批处理的几个问题

这下看懂了,谢谢刺客了!!!
start 那个问题我试了一下start /min notepad 和start notepad /min 前面那个是正确的,可以最小化。
而后者它会认为是创建文件名为min.txt的文本文件,创建的目录为c盘根目录c:\。
至于那个start /min qq,可能是qq本身的原因吧,我也还是不明白。
谢谢所有看过此帖的朋友!谢谢给予解答的朋友!!!





欢迎光临 黑色海岸线论坛 (http://bbs.thysea.com/) Powered by Discuz! 7.2