2017-03-15 85 views
0

我無法在Windows批處理文件中嵌入VBScript。我無法在Windows批處理文件中嵌入VBScript

代碼 cadastro.bat的部分:

@echo off 
echo. 
set /p opcao3= DESEJA EXPORTAR ? (S-SIM/N-NAO): 
if %opcao3%== s goto:Export else goto :Error 
if %opcao3%== S goto:Export else goto :Error 
if %opcao3%== n goto:Buscar else goto :Error 
if %opcao3%== N goto:Buscar else goto :Error 
echo. 

:Export 

For /f "delims=" %%i in ('Cscript //nologo "script_.vbs" "Selecione uma pasta"') do Set "folder=%%i\%codigoPesq%__RELATORIO.txt" 
For /f "eol=- delims=" %%i in ('find /I "%codigoPesq%__" Registros') do >>"%folder%" Echo.%%i 

START %folder% 
ECHO. 
ECHO. 
ECHO. 
ECHO. 
ECHO      VERIFIQUE O LOCAL [%folder%] 
ECHO. 
echo. 
echo      ENTER PARA VOLTAR AO MENU PRINCIPAL 

script.vbs:

Dim objFolder, objShell 
Set objShell = CreateObject("Shell.Application") 
Set objFolder = objShell.BrowseForFolder(0, "Selecione uma pasta.", &H4000, 0) 
If Not (objFolder Is Nothing) Then 
    wscript.echo objFolder.Self.path 
Else 
    wscript.echo 0 
End If 

我只是想VBScript來是一批裏面,謝謝你對我的幫助。

回答

2

正如我所理解的問題,你想有一個單一的文件與VBScript和批處理代碼。如果是的話試試這個:

@echo off 
echo. 
set /p opcao3= DESEJA EXPORTAR ? (S-SIM/N-NAO): 
if %opcao3%== s goto:Export else goto :Error 
if %opcao3%== S goto:Export else goto :Error 
if %opcao3%== n goto:Buscar else goto :Error 
if %opcao3%== N goto:Buscar else goto :Error 
echo. 

:Export 

For /f "delims=" %%i in ('cscript //nologo "%~f0?.wsf" //job:VBS') do Set "folder=%%i\%codigoPesq%__RELATORIO.txt" 
For /f "eol=- delims=" %%i in ('find /I "%codigoPesq%__" Registros') do >>"%folder%" Echo.%%i 

START %folder% 
ECHO. 
ECHO. 
ECHO. 
ECHO. 
ECHO      VERIFIQUE O LOCAL [%folder%] 
ECHO. 
echo. 
echo      ENTER PARA VOLTAR AO MENU PRINCIPAL 

exit /b %errorlevel% 

<package> 
    <job id="VBS"> 
    <script language="VBScript"> 
     Dim objFolder, objShell 
     Set objShell = CreateObject("Shell.Application") 
     Set objFolder = objShell.BrowseForFolder(0, "Selecione uma pasta.", &H4000, 0) 
     If Not (objFolder Is Nothing) Then 
      wscript.echo objFolder.Self.path 
     Else 
      wscript.echo 0 
     End If 
    </script> 
    </job> 
</package> 

本採用了 '黑客' 描述here。雖然這裏的批處理部分沒有放在xml註釋塊中,但它應該可以正常工作,並且我發現它更具可讀性。通常,cscript解析器會查看.wsf文件,並只獲取<package>標記之間的內容,但爲了提高可靠性,您可以將註釋塊放在批處理代碼(或CDATA以獲得更健壯的代碼)。

+0

你好朋友, 我測試了你給我的代碼,我無法導出搜索。 當它去搜索它打開另一個.BAT。 – WillianRC

相關問題