Yahoo Answers is shutting down on May 4th, 2021 (Eastern Time) and the Yahoo Answers website is now in read-only mode. There will be no changes to other Yahoo properties or services, or your Yahoo account. You can find more information about the Yahoo Answers shutdown and how to download your data on this help page.

請教用VB6與BAT來執行DOS的指令.謝謝.

這一段指令[清DLL.如下][題庫中的指令].想用VB6與BAT來執行.該如何描述.謝謝!但是發現用BAT去執行.卻閃一下就不見了.假如用 執行 > CMD 卻可以看到執行的過程.請問為甚麼?????因看不見.所以感覺不踏實.

for % 1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1

Update:

經測試==成功!!!

相當完美的回答 條理分明 易學易懂 讓大家多看幾天 認同的請贊助鼓勵一下

Update 2:

用心幫需求者來回答.一定會被肯定的.也希望大家對這個得來不易的YAHOO知識+園地.盡心盡力.一起打拼........

5 Answers

Rating
  • 是我
    Lv 5
    1 decade ago
    Favorite Answer

    Ummm ......有個疑問:

    for % 1 in ...... %1

    這樣似乎不正確~~數字1應為大寫英文字母I 或小寫英文字母l 之誤吧,所以《在cmd中》正確的指令(以大寫英文字母I為例)應為:

    for %I in (%windir%\system32\*.dll) do regsvr32.exe /s %I OK,再討論您的問題『想用VB6與BAT來執行』。VB6 執行 外部指令,須明確指定執行檔,以 Shell 指令為例:

    Shell PathName, WindowStyle您無法以 "for %I ...." 直接代入 PathName,因 "for" 不是執行檔,它是 cmd 的指令,應使 cmd 執行 for 指令,所以若以 Shell 執行,應為:

    Shell "cmd /K for %I in (%windir%\system32\*.dll) do regsvr32.exe /s %I", vbNormalFocus

    《cmd /K》可保留您的 cmd 視窗,讓您『看到執行的過程』。若您想要看完執行過程後,按任意鍵即可結束 cmd 視窗,則可使用:

    Shell "cmd /C (for %I in (%windir%\system32\*.dll) do regsvr32.exe /s %I) && pause", vbNormalFocus再來,以 BAT 來執行 ,又有些不同;for 指令的變數,在 cmd 視窗中僅使用一個百分比符號(%)即可,即:

    for %I ......

    但在 BAT 中,則須使用兩個百分比符號(%%),即:

    for %%I ......因此,要將以上的指令寫在 BAT 中,應為:

    for %%I in (%windir%\system32\*.dll) do regsvr32.exe /s %%I

    2010-10-20 11:50:05 補充:

    謝謝鄭老師的指教,沒錯,可以是數字,只是小的從沒這樣用過 (會與命令列參數混淆) ~~

    2010-10-21 12:47:57 補充:

    Oh, God !!

    這麼多贊助...... 小的有點承受不住 ~~

    謝謝 。。。。。。

    2010-10-22 12:46:35 補充:

    God Again !!

    加入騎魔滋事這麼久,第一次看到這種盛事 .... 共有 62 人贊助 ~~

    大家辛苦了.....

  • 1 decade ago

    活也[粵語] 讚[台語] 好好好

  • 回答者的寫法,我測了一下,真的不錯,解釋的很清楚,不過大家多點探討回答者的精神,才是最重要的,有這麼多人肯定,相信有他的內涵。

    我是看了樓上的發言才來測的。也順便支持他一下哦。

  • 1 decade ago

    以小肯的人氣應該不止65人,可能沒盡全力找網友要點數,請再加油多寄幾封求點信。

    不然以這一種速度100人贊助可能還要等放個幾天才會結案。

    是我大大回的真的很好,記的也要發動求評價信哦。

  • Anonymous
    1 decade ago

    回答的一樓答得很好! 不過, "for % 1 in (%windir%\\system32\\*.dll) do regsvr32.exe /s %1" 裡的變數名, 取數字"1"或字母"l", 應該都是可以的; 語法是 "FOR %variable IN (set) DO command [command-parameters]", 並沒有規定, %variable 不能數字.

Still have questions? Get your answers by asking now.