none
Localizar arquivo, imprimir e excluir RRS feed

  • Pergunta

  • Olá comunidade,

    Preciso de uma ajuda com um script,

    É possível verificar se existem arquivos com uma determinada extensão em uma pasta, envie-o para LPT1 e exclua em seguida. A execução do script deve ficar em loop infinito.

    Grato;

    Gilcosta.

    segunda-feira, 23 de novembro de 2020 14:17

Respostas

  • Acho que modifiquei algumas coisas para teste, no caso tem que trocar o "^>" por ">" tente com esse:

    @echo off
    chcp 1252 > nul
    
    :: Informe aqui a pasta onde estão os arquivos que devem ser enviados para a impressora:
    set Pasta=C:\Proxy
    
    :: Informe aqui a extençao dos arquivos:
    set Extencao=lpx
    
    pushd "%Pasta%"
    :Inicio
    for /f %%a in ('dir /b *.%Extencao%') do (
    cls
    Title Imprimindo %%a
    Echo Imprimindo: %%a
    type "%%a">"//caixanovo/EPSON TM-T(203dpi) Receipt6"
    timeout /t 100 >nul
    del /q /a "%%a"
    )
    goto :Inicio
    pause
    P.S: Não seria melhor mover o arquivo ao invez de deletar caso tenha algum problema com a impressão?


    R. Bohner


    • Editado Ricardo Bohner segunda-feira, 23 de novembro de 2020 20:48
    • Marcado como Resposta Gilcosta terça-feira, 24 de novembro de 2020 15:40
    segunda-feira, 23 de novembro de 2020 20:21
  • Acho que eu não tinha considerado o erro caso não existam arquivos para imprimir veja se tá certo agora:

    @echo off
    chcp 1252 > nul
    SetLocal EnableDelayedExpansion
    
    :: Informe aqui a pasta onde estão os arquivos que devem ser enviados para a impressoara:
    set Pasta=C:\Proxy
    
    :: Informe aqui a extenção dos arquivos:
    set Extencao=lpx
    
    :: Informe aqui o intervalo em segundos em que a verificação deve occorer:
    set Tempo=100
    
    :: Informe aqui o caminho para a impressora:
    set Impressora=//caixanovo/EPSON TM-T(203dpi) Receipt6
    
    pushd "%Pasta%"
    
    :Inicio
    dir /b /a *.%Extencao% 1>nul 2>Nul
    If /i not %Errorlevel% EQU 0 (
                                  cls
                                  title Nenum Arquivo Encontrado para Imprimir^^!
                                  echo Nenhum Arquivo Encontrado para Imprimir^^!
                                  Timeout /t %Tempo% >nul
                                  goto :Inicio
                                 )
    
    for /f %%a in ('dir /b *.%Extencao%') do (
    If /i exist "%%a" (cls
                       echo 
                       Title Imprimindo %%a
                       Echo Imprimindo: %%a
                       type "%%a">"%Impressora%"
                       timeout /t %Tempo% >nul
                       del /q /a "%%a"
                      )
    )	
    goto :Inicio
    pause

    No caso o caminho da impressora não seria: "\\caixanovo\EPSON TM-T(203dpi) Receipt6" ao invez de "//caixanovo/EPSON TM-T(203dpi) Receipt6"?

    Não esqueça de inserir o beep nessa parte é que no código só aparece echo por alguma razão mais é echo mais o caractere do beep:


    R. Bohner


    • Editado Ricardo Bohner terça-feira, 24 de novembro de 2020 18:51
    • Marcado como Resposta Gilcosta terça-feira, 24 de novembro de 2020 19:23
    terça-feira, 24 de novembro de 2020 18:41

Todas as Respostas

  • Olá Gilcosta,

    Você ainda tem um impressora com porta LPT1? Isso deve ser coisa bem antiga eu acho .

    Mais você já tem um script parcialmente feito ou não e qual tipo de arquivo ele deve pegar e imprimir?

    Se já tiver um script poderia postar o código aqui?


    R. Bohner

    segunda-feira, 23 de novembro de 2020 17:20
  • Tenho alguns pedaços,

    Hoje rodo esse bat: "type %1 > //caixanovo/EPSON", o arquivo está configurado para abrir com o bat que tem esse código, porém ele envia para LPT1 ou impressora, más preciso que ele apague o arquivo após isso.

    Para ver se exite, usei esse código:

    IF EXIST *.lpx(
    echo Yes 
    ) ELSE (
    echo No
    )

    Grato.

    segunda-feira, 23 de novembro de 2020 18:44
  • No caso esse script escanearia a pasta "c:\Meus Arquivos" a procura de arquivos lpx e se encontrar algum o envia para a impressora em "//caixanovo/EPSON" espera 30 segundos o apaga e depois vai para o próximo...

    @echo off
    chcp 1252 > nul
    
    :: Informe aqui a pasta onde estão os arquivos que devem ser enviados para a impressoara:
    set Pasta=c:\Meus Arquivos
    
    :: Informe aqui a extençao dos arquivos:
    set Extencao=lpx
    
    pushd "%Pasta%"
    :Inicio
    for /f %%a in ('dir /b *.%Extencao%') do (
    cls
    Title Imprimindo %%a
    Echo Imprimindo: %%a
    type "%%a"^>"//caixanovo/EPSON"
    timeout /t 30 >nul
    del /q /a "%%a"
    )
    goto :Inicio
    pause



    R. Bohner


    segunda-feira, 23 de novembro de 2020 19:11
  • Obrigado pela pronta Ajuda Ricardo Bohner!

    Ocorreu alguns problemas...

    Não pude anexar imagens aqui ainda, más quando deixei o arquivo na rede, apresentou Arquivo não encontrado e fez novo mapeamento da unida no PC.

    Quando deixei o arquivo na unidade C:, apresentou> Imprimindo: Vendas61182.lpx, A sintaxe do nome do arquivo, do nome do diretório ou do rótulo do volume está incorreto e logo após ao clicar na tela novamente o arquivo Vendas61182.lpx é excluido e volta a processar como arquivo não encontrado.

    obs.: A impressão não ocorre.



    o código final do BAT ficou assim:

    @echo off
    chcp 1252 > nul

    :: Informe aqui a pasta onde estão os arquivos que devem ser enviados para a impressora:
    set Pasta=C:\Proxy

    :: Informe aqui a extençao dos arquivos:
    set Extencao=lpx

    pushd "%Pasta%"
    :Inicio
    for /f %%a in ('dir /b *.%Extencao%') do (
    cls
    Title Imprimindo %%a
    Echo Imprimindo: %%a
    type "%%a"^>"//caixanovo/EPSON TM-T(203dpi) Receipt6"
    timeout /t 100 >nul
    del /q /a "%%a"
    )
    goto :Inicio
    pause

    Grato.

    segunda-feira, 23 de novembro de 2020 20:17
  • Acho que modifiquei algumas coisas para teste, no caso tem que trocar o "^>" por ">" tente com esse:

    @echo off
    chcp 1252 > nul
    
    :: Informe aqui a pasta onde estão os arquivos que devem ser enviados para a impressora:
    set Pasta=C:\Proxy
    
    :: Informe aqui a extençao dos arquivos:
    set Extencao=lpx
    
    pushd "%Pasta%"
    :Inicio
    for /f %%a in ('dir /b *.%Extencao%') do (
    cls
    Title Imprimindo %%a
    Echo Imprimindo: %%a
    type "%%a">"//caixanovo/EPSON TM-T(203dpi) Receipt6"
    timeout /t 100 >nul
    del /q /a "%%a"
    )
    goto :Inicio
    pause
    P.S: Não seria melhor mover o arquivo ao invez de deletar caso tenha algum problema com a impressão?


    R. Bohner


    • Editado Ricardo Bohner segunda-feira, 23 de novembro de 2020 20:48
    • Marcado como Resposta Gilcosta terça-feira, 24 de novembro de 2020 15:40
    segunda-feira, 23 de novembro de 2020 20:21
  • Muito Obrigado Ricardo Bohner!

    Funcionou perfeitamente!

    ***Como o processo de mandar imprimir é algo bem simples neste caso, então já prefiro remover o arquivo.

    obs: Tentei implementar um beep quando ocorre a impressão com ^B que funciona com CMD, más sem sucesso.

    Muito agradecido pela ajuda!

    Att;

    GilCosta.

    terça-feira, 24 de novembro de 2020 15:40
  • Falou, para criar o beep tente seguir esses passos:

    Passo 01: Abra um prompt de comando, Digite Echo {pressione CTRL + G}>beep.txt

    Passo 02: Abra o arquivo beep.txt, copie o "caractere estranho", abra seu batch na parte onde você quer usar  um beep use Echo + {caractere copiado} que você copiou:

    echo 

    * Esse caractere é tão estranho que nem aparece aqui lol

    https://www.youtube.com/watch?v=V9LTdXb1CjM



    R. Bohner


    terça-feira, 24 de novembro de 2020 16:35
  • Funcionou o beep, más não consegui fazer com que ele beep somente se encontrar o arquivo, ficou beepando a cada laço de execução.

    Grato;

    Gilcosta.

    terça-feira, 24 de novembro de 2020 17:34
  • Acho que eu não tinha considerado o erro caso não existam arquivos para imprimir veja se tá certo agora:

    @echo off
    chcp 1252 > nul
    SetLocal EnableDelayedExpansion
    
    :: Informe aqui a pasta onde estão os arquivos que devem ser enviados para a impressoara:
    set Pasta=C:\Proxy
    
    :: Informe aqui a extenção dos arquivos:
    set Extencao=lpx
    
    :: Informe aqui o intervalo em segundos em que a verificação deve occorer:
    set Tempo=100
    
    :: Informe aqui o caminho para a impressora:
    set Impressora=//caixanovo/EPSON TM-T(203dpi) Receipt6
    
    pushd "%Pasta%"
    
    :Inicio
    dir /b /a *.%Extencao% 1>nul 2>Nul
    If /i not %Errorlevel% EQU 0 (
                                  cls
                                  title Nenum Arquivo Encontrado para Imprimir^^!
                                  echo Nenhum Arquivo Encontrado para Imprimir^^!
                                  Timeout /t %Tempo% >nul
                                  goto :Inicio
                                 )
    
    for /f %%a in ('dir /b *.%Extencao%') do (
    If /i exist "%%a" (cls
                       echo 
                       Title Imprimindo %%a
                       Echo Imprimindo: %%a
                       type "%%a">"%Impressora%"
                       timeout /t %Tempo% >nul
                       del /q /a "%%a"
                      )
    )	
    goto :Inicio
    pause

    No caso o caminho da impressora não seria: "\\caixanovo\EPSON TM-T(203dpi) Receipt6" ao invez de "//caixanovo/EPSON TM-T(203dpi) Receipt6"?

    Não esqueça de inserir o beep nessa parte é que no código só aparece echo por alguma razão mais é echo mais o caractere do beep:


    R. Bohner


    • Editado Ricardo Bohner terça-feira, 24 de novembro de 2020 18:51
    • Marcado como Resposta Gilcosta terça-feira, 24 de novembro de 2020 19:23
    terça-feira, 24 de novembro de 2020 18:41
  • Sensacional!

    Funcionou na perfeição!

    Muito obrigado Ricardo Bohner.

    Quanto ao caminho da impressora, já havia percebido e corrigido.

    Att;

    GilCosta.

    terça-feira, 24 de novembro de 2020 19:23