中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-18 02:16
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 用记事本打开批处理 查看 6,718 回复 16
楼 主 用记事本打开批处理 发表于 2007-02-04 11:24 ·  中国 湖南 长沙 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
UID 73968
性别 男
状态 离线
因我的鼠标右键坏了,突发奇想,想编一批处理a.bat,运行以后可以用记事本打开b.bat,不知道能否实现?size]
2 发表于 2007-02-04 11:37 ·  中国 北京 中移铁通
荣誉版主
★★★
积分 1,338
发帖 356
注册 2005-07-15 12:09
UID 40733
性别 男
状态 离线
尾行添加以下语句试试:
start notepad "%~0"

call start notepad "%~0"

调用可执行程序用第一个,调用批处理用第二个。
  ☆开始\运行 (WIN+R)☆
%ComSpec% /cset,=何奈无── 。何奈可无是原,事奈无做人奈无&for,/l,%i,in,(22,-1,0)do,@call,set/p= %,:~%i,1%<nul&ping/n 1 127.1>nul

3 发表于 2007-02-04 11:55 ·  中国 湖南 长沙 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
UID 73968
性别 男
状态 离线
多谢版主
能解释一下 notepad 命令是干什么的吗? 谢谢!!!
4 发表于 2007-02-04 11:59 ·  中国 北京 中移铁通
荣誉版主
★★★
积分 1,338
发帖 356
注册 2005-07-15 12:09
UID 40733
性别 男
状态 离线
搜索一下系统目录 notepad.exe 就知道了,不是你说的 “记事本” 吗?
  ☆开始\运行 (WIN+R)☆
%ComSpec% /cset,=何奈无── 。何奈可无是原,事奈无做人奈无&for,/l,%i,in,(22,-1,0)do,@call,set/p= %,:~%i,1%<nul&ping/n 1 127.1>nul

5 发表于 2007-02-04 12:14 ·  中国 吉林 四平 联通
高级用户
★★★
积分 859
发帖 413
注册 2006-08-14 21:55
UID 60532
状态 离线
版主的命令不太懂
6 发表于 2007-02-04 12:55 ·  中国 北京 中移铁通
荣誉版主
★★★
积分 1,338
发帖 356
注册 2005-07-15 12:09
UID 40733
性别 男
状态 离线
Originally posted by anqing at 2007-2-4 12:14:
版主的命令不太懂

我猜想你对 call 与 start 的使用有疑问,详情参阅一下帮助。

我简单说明一下:

对于 call 与 start 很多时候能完成同样的命令,也可以组合起来使用。
简单点说一下两者的区别(个人体会)

call :可以调用可执行程序和代码段,也可以调用 set 等命令完成变量的转义(或者称宏替换我不确定该如何准确称呼),主程序会等待调用结束。

start:同样可以调用可执行程序和代码段,默认参数使用时主程序不等待调用结束继续下面语句的执行,可以加 /WAIT 参数等待命令结束。

启动 exe 程序一般使用 start 命令,启动 批处理脚本 一般使用 call ,当然根据具体情况选择,也可以混合使用。
  ☆开始\运行 (WIN+R)☆
%ComSpec% /cset,=何奈无── 。何奈可无是原,事奈无做人奈无&for,/l,%i,in,(22,-1,0)do,@call,set/p= %,:~%i,1%<nul&ping/n 1 127.1>nul

7 发表于 2007-02-05 09:41 ·  中国 广西 梧州 电信
初级用户
积分 94
发帖 31
注册 2007-01-27 14:04
UID 77865
性别 男
状态 离线
有点疑问后面 "%~0"

是什么意思呢???解释一下好吗?
8 发表于 2007-02-05 12:10 ·  中国 吉林 四平 联通
高级用户
★★★
积分 859
发帖 413
注册 2006-08-14 21:55
UID 60532
状态 离线
call start notepad "%~0"
这个放在p中,运行后,会打开这个p,用记事本打开,%0是表示调用自身,但加一个~号,意思可能就变了,就不懂了?
把这个含有call start notepad "%~0"的p中,拖进其它的p中,会自动打开运行哪个p

版主的这两条命令,真深
9 发表于 2007-02-05 12:22 ·  中国 吉林 四平 联通
高级用户
★★★
积分 859
发帖 413
注册 2006-08-14 21:55
UID 60532
状态 离线
楼主可以在cmd,打入 echo start notepad "%~1">d:\a.bat,然后,把想打开的其它p拖进来 ,就可以查看p的代码了?
右键坏了,不如换个标!
10 发表于 2007-02-05 12:33 ·  中国 广东 广州 珠江宽频
中级用户
★★
积分 210
发帖 85
注册 2007-01-14 12:38
UID 76501
性别 男
来自 广东广州
状态 离线
也不明白"%~0",仅知"~"可能是一元运算符。
11 发表于 2007-02-05 14:13 ·  中国 北京 中移铁通
荣誉版主
★★★
积分 1,338
发帖 356
注册 2005-07-15 12:09
UID 40733
性别 男
状态 离线
%~0 只是 %0 的扩展,其含义是删除引号。
详情见:for /?
  ☆开始\运行 (WIN+R)☆
%ComSpec% /cset,=何奈无── 。何奈可无是原,事奈无做人奈无&for,/l,%i,in,(22,-1,0)do,@call,set/p= %,:~%i,1%<nul&ping/n 1 127.1>nul

12 发表于 2007-02-05 14:35 ·  中国 广东 广州 珠江宽频
中级用户
★★
积分 210
发帖 85
注册 2007-01-14 12:38
UID 76501
性别 男
来自 广东广州
状态 离线
谢版主释疑。
13 发表于 2007-02-05 22:14 ·  中国 吉林 四平 联通
高级用户
★★★
积分 859
发帖 413
注册 2006-08-14 21:55
UID 60532
状态 离线
call start notepad "%~0"
请问版主,这句在p中,改成call start notepad %0的话,和call start notepad "%~0"有什么不同??
14 发表于 2007-02-05 23:11 ·  中国 甘肃 兰州 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
Originally posted by anqing at 2007-2-5 22:14:
call start notepad "%~0"
请问版主,这句在p中,改成call start notepad %0的话,和call start notepad "%~0"有什么不同??

防止文件名中有空格等
15 发表于 2007-03-18 11:44 ·  中国 湖北 黄冈 电信
高级用户
★★★
积分 894
发帖 411
注册 2007-02-17 12:15
UID 79697
性别 男
状态 离线
学习了, 收下, 谢谢.
@set c= 不知则觉多,知则觉少,越知越多,便觉越来越少. --- 知多少.
@for,/l,%%i,in,(1,1,55)do,@call,set/p=%%c:~%%i,1%%<nul&ping/n 1 127.1>nul


论坛跳转: