2014-01-21 768 views
1

我是新手,希望我能正確地做到這一點。從VBA執行.bat文件與手動點擊執行.bat文件

我有一個bat文件,它將在hklm \ Apache Software Foundation \ Tomcat下搜索註冊表項。當我手動點擊該文件時,Bat文件返回答案,但在使用Excel VBA調用Shell時無法搜索該鍵。這裏的bat文件:

@echo off 
setlocal enableextensions enabledelayedexpansion 
set xx=2 
for /f "tokens=3 delims= " %%D in (
'reg query \\servername"\hklm\software\Apache Software Foundation\Tomcat" /s /v Version' 
) do (
if !xx!==1 set "var3=%%D," 
set /a "xx = xx - 1" 
) 
if "%var3%"=="" (set "var3= ,") 
echo %var3% 
pause 

,這裏是它是如何通過VBA稱爲: 呼叫殼牌( 「C:\用戶\ mynetworkID \桌面\ C.BAT」)

它正確運行的批處理文件但它無法搜索註冊碼。任何想法爲什麼?在此先感謝

+0

嘗試將@echo關閉,看看它實際上在做什麼 –

+0

它顯示代碼塊,但是當我用VBA運行bat時,錯誤仍然存​​在。僅供參考這是錯誤消息: 錯誤:系統無法找到指定的註冊表項或值 – Alex

+0

當您手動運行它時,您是否以管理員身份運行?或者像運行Excel的用戶一樣? –

回答