中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求助:转换ANSI编码的bat在注册表里命令安顺序执行方法
作者:
标题: 求助:转换ANSI编码的bat在注册表里命令安顺序执行方法 上一主题 | 下一主题
lqs623
贫困用户





积分 -3
发帖 30
注册 2007-8-13
状态 离线
『楼 主』:  求助:转换ANSI编码的bat在注册表里命令安顺序执行方法

求助:文本转换为ANSI编码的bat在文件右键菜单里使用,命令安顺序执行的方法

注册表键值数据为:(可以在文件右键菜单里使用。多个文件同时转换为ANSI编码)
C:\WINDOWS\system32\cmd.exe /c Md temp & For %%a in ("*.reg") Do Type "%%a" > temp\"%%a" & Copy temp\"*.reg" /y & Del temp\*.reg

改为:
C:\WINDOWS\system32\cmd.exe /c Md temp & For %%a in ("*.reg") Do Type "%%a" > temp\"%%a" & Copy temp\"*.reg" /y & Del temp\*.reg & Rd temp
即加上结尾的“& Rd temp”直接运行不完Copy temp\"*.reg"这一步,“& Rd temp”就运行结束,怎样修改能实现以下bat(以下bat可用)
Md temp
For %%a in ("*.reg") Do Type "%%a" >temp\"%%a"
Copy temp\"*.reg"  /y
Del temp\*.reg
Rd temp
全过程,可以在文件右键菜单里使用(多个文件同时转换为ANSI编码)

在注册表里完整的项键值数据REG如下:
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\reg转换ANSI]

[HKEY_CLASSES_ROOT\*\shell\reg转换ANSI\COMMAND]
@="C:\\WINDOWS\\system32\\cmd.exe /c Md temp & For %%a in (\"*.reg\") Do Type \"%%a\" > temp\\\"%%a\" & Copy temp\\\"*.reg\" /y & Del temp\\*.reg"

[ Last edited by lqs623 on 2010-4-16 at 19:00 ]

2010-4-16 16:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 2 楼』:  

为什么用一个连串的命令,而不用一个批处理呢?

键值为:"C:\Hanyeguxing.bat" "%1" %*
然后在批处理里接收并使用参数

[ Last edited by Hanyeguxing on 2010-4-16 at 18:16 ]



批处理之家 http://bbs.bathome.net/forum-5-1.html
2010-4-16 18:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lqs623
贫困用户





积分 -3
发帖 30
注册 2007-8-13
状态 离线
『第 3 楼』:  

非常谢谢我没想到,我我怎么就没想到呢。我真笨。

2010-4-16 19:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lqs623
贫困用户





积分 -3
发帖 30
注册 2007-8-13
状态 离线
『第 4 楼』:  

但我想连串的命令不受缺少了Hanyeguxing.bat的影响,是不是在注册表里单独解决不了,而用"C:\Hanyeguxing.bat" 解决?谢谢!

2010-4-16 19:26
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 5 楼』:  



  Quote:
Originally posted by lqs623 at 2010-4-16 19:26:
但我想连串的命令不受缺少了Hanyeguxing.bat的影响,是不是在注册表里单独解决不了,而用"C:\Hanyeguxing.bat" 解决?谢谢!

cmd后跟多个 string
使用多个命令
可以在 string 中使用由 && 分隔的多个命令,不过这些命令必须置于引号之中(例如,"command&&command&&command")。

[ Last edited by Hanyeguxing on 2010-4-16 at 19:40 ]



批处理之家 http://bbs.bathome.net/forum-5-1.html
2010-4-16 19:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lqs623
贫困用户





积分 -3
发帖 30
注册 2007-8-13
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by Hanyeguxing at  07:30 PM:


cmd后跟多个 string
使用多个命令
可以在 string 中使用由 && 分隔的多个命令,不过这些命令必须置于引号之中(例如,"command&&comma ...

经过实验发现“键值为:"C:\Hanyeguxing.bat" "%1" %*的过程是:第一个命令对所有文件执行完,第二个命令才运行,也是对所有文件执行完,第三个命令才运行
而不用"Hanyeguxing.bat"方法的过程是:第一个文件被上面五个命令执行完,第二个文件才开始被上面五个命令执行,这种方式造成多文件被执行时中断。(好像整个过程不简洁)主要无法完成目的

[ Last edited by lqs623 on 2010-4-17 at 13:09 ]

2010-4-17 13:08
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 7 楼』:  

崩溃。。。。。。
cmd后跟多个 string 指定是cmd后跟的命令
例如cmd /q /k echo.123
这个echo.123就是 string
使用""引号引起来是为了使"........."中的多个命令同时作为cmd的子命令。
使用&&连接是为了只有在符号 && 前面的命令成功时,才用于运行该符号后面的命令。
你可以自己看C:\WINDOWS\Help\ntcmds.chm::/ntcmds_shelloverview.htm
和C:\WINDOWS\Help\ntcmds.chm::/cmd.htm

[ Last edited by Hanyeguxing on 2010-4-17 at 14:05 ]



批处理之家 http://bbs.bathome.net/forum-5-1.html
2010-4-17 14:01
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lqs623
贫困用户





积分 -3
发帖 30
注册 2007-8-13
状态 离线
『第 8 楼』:  

请给看看下面键值,对只有一个的reg文件的目录可用,对有多个reg文件目录不能用,帮忙谢谢!!

C:\WINDOWS\system32\cmd.exe /k "Md temp && For %%a in ("*.reg") Do Type "%%a" > temp\"%%a" && Copy temp\"*.reg" /y && del temp\*.* /q && rd temp"

2010-4-17 16:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 9 楼』:  

在cmd里使用for时,即不在批处理里使用,那么%%a要写成%a,类推!



批处理之家 http://bbs.bathome.net/forum-5-1.html
2010-4-17 16:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lqs623
贫困用户





积分 -3
发帖 30
注册 2007-8-13
状态 离线
『第 10 楼』:  

改键值如下,什么情况都不能用。
C:\WINDOWS\system32\cmd.exe /k "Md temp && For %a in ("*.reg") Do Type "%a" > temp\"%a" && Copy temp\"*.reg" /y && del temp\*.* /q && rd temp"

2010-4-17 16:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: