广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 3542 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
upside 手机 葫芦墩家族
个人头像
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖 社区建设奖 优秀管理员勋章
头衔:反病毒 反诈骗 反虐犬   反病毒 反诈骗 反虐犬  
版主
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x0
[Basic][求助] 编辑批次语法 发生语法错误 (已解决)
Print #1, "echo @="\"%%1\" %%*">>Fixassoc.reg"

这几行 有 % 字元的命令字串 都会出现语法错误的问题 造成无法编辑
请问如何修改 才不会出现错误
该% 字元 是必备命令 不可变更或删除 否则此命令会失效


'rexe.bat 恢复bat.cmd.com.exe.pif.scr.txt.ini文件关联
Open "c:\Progra~1\KillTr~1\rexe.bat" For Output As #1
Print #1, "@echo off" '让批次档不会出现指令讯息
Print #1, ""
Print #1, "echo Fixassoc.bat" '用于恢复bat.cmd.com.exe.pif.scr.txt.ini文件关联
Print #1, "echo."
Print #1, "if %os%==Windows_NT goto reg5"
Print #1, "echo REGEDIT4 > Fixassoc.reg"
Print #1, "GoTo start"
Print #1, ":reg5"
Print #1, "echo Windows Registry Editor Version 5.00>Fixassoc.reg"
Print #1, ":start"
Print #1, "echo.>>Fixassoc.reg"
Print #1, "echo >>Fixassoc.reg"
Print #1, "echo @="\"%%1\" %%*">>Fixassoc.reg"
Print #1, "echo.>>Fixassoc.reg"
Print #1, "if %os%==Windows_NT goto cmd"
Print #1, "GoTo com"
Print #1, ": cmd"
Print #1, "echo >>Fixassoc.reg"
Print #1, "echo @="\"%%1\" %%*">>Fixassoc.reg"
Print #1, "echo.>>Fixassoc.reg"
Print #1, ": com"
Print #1, "echo >>Fixass ..

访客只能看到部份内容,免费 加入会员 或由脸书 Google 可以看到全部内容



[ 此文章被upside在2007-01-11 14:45重新编辑 ]



爸爸 你一路好走
献花 x0 回到顶端 [楼 主] From:台湾 | Posted:2007-01-09 09:19 |
upside 手机 葫芦墩家族
个人头像
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖 社区建设奖 优秀管理员勋章
头衔:反病毒 反诈骗 反虐犬   反病毒 反诈骗 反虐犬  
版主
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

Print #1, "echo @=" \ "chr$(37)chr$(37)1\"; Chr$(0); Chr(37); Chr(37); Chr(42); ">>Fixassoc.reg"

目前改使用 ASCII 码 来代替字元
不过还是不行 连 空白处都用 ASCII 码代替了
麻烦各位一下


爸爸 你一路好走
献花 x0 回到顶端 [1 楼] From:台湾 | Posted:2007-01-10 18:08 |
chaiyuchi
数位造型
个人文章 个人相簿 个人日记 个人地图
小有名气
级别: 小有名气 该用户目前不上站
推文 x15 鲜花 x212
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

你试着修改成
Print #1, "echo @=" & Chr$(34) & "   " & Chr$(34) & "%%1   " & Chr$(34) & " %%*" & Chr$(34) & ">>Fixassoc.reg"
这样看看吧

以下把以""为一个条件来取出的话
你将发现有哪些地方出错了
你的
Print #1,
"echo @="
\
"chr$(37)chr$(37)1\"
; Chr$(0); Chr(37); Chr(37); Chr(42);
">>Fixassoc.reg"

而我的
Print #1,
"echo @="
& Chr$(34) &
"   "
& Chr$(34) &
"%%1   "
& Chr$(34) &
" %%*"
& Chr$(34) &
">>Fixassoc.reg"

你将你的部分
跟我所修改的结果
比较一下
应该不难发现
哪些地方不同吧
(我这样切割出来,已经很明显了,在看不懂的话,就可能是你把程式想得太复杂了)

PS:以上我是把"的符号,当作是有效字元,因为我看你一直往这里钻,所以就把"的符号,变成chr$(34)了,因为不知道你真正的字串为何,所以以上是我预设的假设,如有问题,在跟我说吧。
echo @="   "%%1   " %%*">>Fixassoc.reg <---这是我预设你想输出的整串字元,如果我有猜错,也请你把你想输出的字串,描述清楚,这样会比较简单些。


[ 此文章被chaiyuchi在2007-01-10 18:32重新编辑 ]


在下判断之时,应先破除内心的成见,否则,你将会用一种错误的标准去衡量,就像患有黄疸病的人,把一切都看成是黄色一样。
对人生加以思索的人,觉得人生是喜剧,只凭感触而未思索的,便觉人生是悲剧。
献花 x0 回到顶端 [2 楼] From:APNIC | Posted:2007-01-10 18:26 |
upside 手机 葫芦墩家族
个人头像
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖 社区建设奖 优秀管理员勋章
头衔:反病毒 反诈骗 反虐犬   反病毒 反诈骗 反虐犬  
版主
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

感谢指教 我参考了语法修改一下就可以成功了
Print #1, "echo @=" & Chr$(34) & "\" & Chr$(34) & "%%1\" & Chr$(34) & " %%*" & Chr$(34) & ">>Fixassoc.reg"

现在只剩下两行错误

Print #1, "echo @=" \ "%%1\" / S; ">>Fixassoc.reg"
Print #1, "echo @="NOTEPAD.EXE %%1">>Fixassoc.reg"


修改版 第一行应该OK 第两行还在研究
Print #1, "echo @=" & Chr$(34) & "\" & Chr$(34) & "%%1\" & Chr$(34) & " /S" & Chr$(34) & ">>Fixassoc.reg"

Print #1, "echo @="NOTEPAD.EXE" & Chr$(34) & "\" & Chr$(34) & "%%1\">>Fixassoc.reg"


关于此软体完成的 成品 应该是要与附件相同的
其作用是 要修复系统登录 关连的错误
因为很多系统问题或病毒造成
.exe 档无法执行 使用了此软体即可修复


本帖包含附件
zip Fixassoc.zip   (2022-06-09 14:02 / 1 KB)  
说明:
下载次数:5


[ 此文章被upside在2007-01-10 21:36重新编辑 ]


爸爸 你一路好走
献花 x0 回到顶端 [3 楼] From:台湾 | Posted:2007-01-10 21:12 |
chaiyuchi
数位造型
个人文章 个人相簿 个人日记 个人地图
小有名气
级别: 小有名气 该用户目前不上站
推文 x15 鲜花 x212
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用upside于2007-01-10 21:12发表的 :
Print #1, "echo @=" \ "%%1\" / S; ">>Fixassoc.reg"
Print #1, "echo @="NOTEPAD.EXE %%1">>Fixassoc.reg"


修改版 第一行应该OK 第两行还在研究
Print #1, "echo @=" & Chr$(34) & "\" & Chr$(34) & "%%1\" & Chr$(34) & " /S" & Chr$(34) & ">>Fixassoc.reg"

Print #1, "echo @="NOTEPAD.EXE" & Chr$(34) & "\" & Chr$(34) & "%%1\">>Fixassoc.reg"

我想你还是不习惯怎么去切割出重点吧
只要把一组一组区分开来
真的不会太难的
不过我想不到
居然是为了这套伟大的软体
在做奋斗@@
废话不多说了
我就来说说重点啰
第一个
Print #1, "echo @=" \ "%%1\" / S; ">>Fixassoc.reg"
但你解释为
Print #1, "echo @=" & Chr$(34) & "\" & Chr$(34) & "%%1\" & Chr$(34) & " /S" & Chr$(34) & ">>Fixassoc.reg"
将之切割之后来分析
你在/S;这部分
好像少了这个符号--> ;
我不清楚是否重要
不过还是先依照你原始的模式
来解析好了
Print #1,
"echo @="
& Chr$(34) &
"\"
& Chr$(34) &
"%%1\"
& Chr$(34) &
" /S"
& Chr$(34) &
">>Fixassoc.reg"
组合起来之后
所输出的字元应该为
echo @="\"%%1"/S">>Fixassoc.reg
而如果你最原始的那个符号有效的话
那么应该输出的为
echo @="\"%%1"/S;">>Fixassoc.reg
所以正确应该是
Print #1, "echo @=" & Chr$(34) & "\" & Chr$(34) & "%%1\" & Chr$(34) & " /S;" & Chr$(34) & ">>Fixassoc.reg"

第二题则是
Print #1, "echo @="NOTEPAD.EXE %%1">>Fixassoc.reg"
那么也应该变成
print #1, "echo @=" & chr$(34) & "NOTEPAD.EXE %%1" & chr$(34) & ">>Fixassoc.reg"

把他切割出来的话
就变成
print #1,
"echo @="
& chr$(34) &
"NOTEPAD.EXE %%1"
& chr$(34) &
">>Fixassoc.reg"
所以正确字元为
echo @="NOTEPAD.EXE %%1">>Fixassoc.reg
很简单吧^^"


在下判断之时,应先破除内心的成见,否则,你将会用一种错误的标准去衡量,就像患有黄疸病的人,把一切都看成是黄色一样。
对人生加以思索的人,觉得人生是喜剧,只凭感触而未思索的,便觉人生是悲剧。
献花 x1 回到顶端 [4 楼] From:台湾中华电信HINET | Posted:2007-01-10 22:11 |
upside 手机 葫芦墩家族
个人头像
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖 社区建设奖 优秀管理员勋章
头衔:反病毒 反诈骗 反虐犬   反病毒 反诈骗 反虐犬  
版主
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
完整的程式码
Private Sub Form_Load()
Form2.Show
'reset.bat 修复系统与网路
Open "c:\Progra~1\KillTr~1\reset.bat" For Output As #1
Print #1, "@echo off"   '让批次档不会出现指令讯息
Print #1, ""
Print #1, "regedit /s WinSock2.reg"   '修复 WinSock2
Print #1, "regsvr32 /s shdocvw.dll"   '修复 IE
Print #1, "regsvr32 /s msjava.dll"
Print #1, "regsvr32 /s urlmon.dll"
Print #1, "regsvr32 /s mshtml.dll"
Print #1, "regsvr32 /s browseui.dll"
Print #1, "regsvr32 /s jscript.dll"
Print #1, "regsvr32 /s vbscript.dll"
Print #1, ""
Print #1, "regedit /s index.reg" '解决首页被绑架
Print #1, "" '恢复 hosts & system.ini & win.ini 档案
Print #1, "attrib -s -h -r C:\WINDOWS\system32\drivers\etc\hosts"
Print #1, "attrib -s -h -r C:\Windows\system.ini"
Print #1, "attrib -s -h -r C:\Windows\win.ini"
Print #1, "copy hosts C:\WINDOWS\system32\drivers\etc"
Print #1, "copy system.ini C:\Windows\"
Print #1, "copy win.ini C:\Windows\"
Print #1, "regedit /s SafeBoot.reg" '修复无法进入安全模式
Print #1, "" '解决执行档(.exe)无法执行
Print #1, "Call reexe.bat"
Print #1, "" '解决该记忆体不能为 read或written
Print #1, "for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1"
Print #1, ""
Print #1, "del c:\Progra~1\KillTr~1\reset.bat" '批次档自删
Print #1, "exit" '离开
Close #1

MsgBox "系统进程分析成功!! 请在桌面上观看日志"
'dos执行后也消失!工作列上dos会一闪即逝!即成功了!
Shell "command.com /c c:\Progra~1\KillTr~1\reset.bat", 6
End '自己结束!后续的工作交给非同步的批次档完成!
Call Shell(App.Path & "\Progra~1\KillTr~1\reset.bat", 1)
End Sub


爸爸 你一路好走
献花 x0 回到顶端 [5 楼] From:台湾 | Posted:2007-01-10 22:23 |

首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.058588 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言