【问题标题】:I am not able to embed VBScript in the Windows batch file [duplicate]我无法在 Windows 批处理文件中嵌入 VBScript [重复]
【发布时间】:2017-08-06 22:15:35
【问题描述】:

我无法在 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

脚本.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 在批处理中,谢谢你的帮助。

【问题讨论】:

    标签: file batch-file vbscript


    【解决方案1】:

    据我了解,您希望拥有一个包含 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 文件并仅获取 &lt;package&gt; 标签之间的内容,但为了稳健性,你可以放一个批处理代码的注释块(或更强大的代码的 CDATA)。

    【讨论】:

    • 您好朋友,我测试了您给我的代码,但无法导出搜索。当它进行搜索时,它会打开另一个 .BAT。
    猜你喜欢
    • 2018-01-07
    • 2015-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-07
    • 2012-08-07
    相关资源
    最近更新 更多