廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 3352 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為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.024787 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言