中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-05 06:48
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 下面这个代码放在其他的批处理文件中怎么老报错 查看 800 回复 4
楼 主 下面这个代码放在其他的批处理文件中怎么老报错 发表于 2007-07-09 14:10 ·  中国 山东 滨州 联通
初级用户
积分 60
发帖 23
注册 2007-07-05 00:44
19年会员
UID 93170
性别 男
状态 离线
下面这个代码放在其他的批处理文件中怎么老报错
cd.>tmp.vbs
for /f "usebackq skip=4 tokens=*" %%a in (%0) do @echo %%a>>tmp.vbs
tmp.vbs&del tmp.vbs /q
goto :eof

Rem 以下为VbScript脚本
Set WshShell = WScript.CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("Desktop") :'特殊文件夹“桌面”

Rem 在桌面创建一个记事本快捷方式
set oShellLink = WshShell.CreateShortcut(strDesktop & "\记事本.lnk")
oShellLink.TargetPath = "notepad.exe" : '目标
oShellLink.WindowStyle = 3 :'参数1默认窗口激活,参数3最大化激活,参数7最小化
oShellLink.Hotkey = "Ctrl+Alt+e" : '快捷键
oShellLink.IconLocation = "notepad.exe, 0" : '图标
oShellLink.Description = "记事本快捷方式" : '备注
oShellLink.WorkingDirectory = strDesktop : '起始位置
oShellLink.Save : '创建保存快捷方式

Rem 在桌面创建一个“微软中国”的Url快捷方式
set oUrlLink = WshShell.CreateShortcut(strDesktop & "\微软中国.url")
oUrlLink.TargetPath = "http://www.microsoft.com/china"
oUrlLink.Save
龙飞电脑网络 中国厨房设备联盟 www.59fei.com
www.chufangshebei.com
2 发表于 2007-07-09 14:31 ·  中国 河北 保定 联通
铂金会员
★★★★
网络独行侠
积分 6,962
发帖 2,753
注册 2003-04-16 00:00
23年会员
UID 1565
性别 男
来自 河北保定
状态 离线
先问一下你自己明白不明白这个批处理是做什么用的?
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
3 发表于 2007-07-09 14:45 ·  中国 山东 滨州 联通
初级用户
积分 60
发帖 23
注册 2007-07-05 00:44
19年会员
UID 93170
性别 男
状态 离线
不是很明白

是生成一个vbs临时文件 然后运行vbs文件
在桌面上面生成两个快捷方式
龙飞电脑网络 中国厨房设备联盟 www.59fei.com
www.chufangshebei.com
4 发表于 2007-07-09 14:46 ·  中国 山东 滨州 联通
初级用户
积分 60
发帖 23
注册 2007-07-05 00:44
19年会员
UID 93170
性别 男
状态 离线
for /f "usebackq skip=4 tokens=*" %%a in (%0) do @echo %%a>>tmp.vbs
tmp.vbs&del tmp.vbs /q
这个不明白
龙飞电脑网络 中国厨房设备联盟 www.59fei.com
www.chufangshebei.com
5 发表于 2007-07-09 15:04 ·  中国 河北 保定 联通
铂金会员
★★★★
网络独行侠
积分 6,962
发帖 2,753
注册 2003-04-16 00:00
23年会员
UID 1565
性别 男
来自 河北保定
状态 离线
既然for命令中使用了%0,那么要求你在调用这个批处理时一定要输入批处理的全名,或者在资源管理器中直接双击执行批处理。

其它的,你自己看for命令或者其它命令的帮助。

其实for命令就是将当前运行的批处理从第5行开始的内容输出到tmp.vbs中,然后后面的命令就是运行这个vbs然后再删除这个临时的vbs。
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
论坛跳转: