中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-05 07:59
48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 下面这个代码放在其他的批处理文件中怎么老报错
可打印版本  801 / 4
第1楼 59fei 发表于 2007-07-09 14:10
初级用户 发帖 23 积分 60
下面这个代码放在其他的批处理文件中怎么老报错
下面这个代码放在其他的批处理文件中怎么老报错
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
第2楼 Climbing 发表于 2007-07-09 14:31
铂金会员 发帖 2,753 积分 6,962 来自 河北保定
先问一下你自己明白不明白这个批处理是做什么用的?
第3楼 59fei 发表于 2007-07-09 14:45
初级用户 发帖 23 积分 60
不是很明白

是生成一个vbs临时文件 然后运行vbs文件
在桌面上面生成两个快捷方式
第4楼 59fei 发表于 2007-07-09 14:46
初级用户 发帖 23 积分 60
for /f "usebackq skip=4 tokens=*" %%a in (%0) do @echo %%a>>tmp.vbs
tmp.vbs&del tmp.vbs /q
这个不明白
第5楼 Climbing 发表于 2007-07-09 15:04
铂金会员 发帖 2,753 积分 6,962 来自 河北保定
既然for命令中使用了%0,那么要求你在调用这个批处理时一定要输入批处理的全名,或者在资源管理器中直接双击执行批处理。

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

其实for命令就是将当前运行的批处理从第5行开始的内容输出到tmp.vbs中,然后后面的命令就是运行这个vbs然后再删除这个临时的vbs。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023