2017-03-15 88 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

相关问题