Ir ao conteúdo

Passar parâmetro para arquivo em lote (.bat)


Ligeiro76

Posts recomendados

Postado

Olá,

Criei um arquivo em lote para o qual preciso passar dois parâmetros %1 e %2. Preciso passar esses parâmetros através do atalho para o arquivo.

No Windows 98 eu conseguia fazer isso usando "?" na linha de comando. Ex.: arquivo.bat ?. Ao executar o atalho uma caixa de diálogo era aberta para que o parâmetro fosse passado.

Porém no XP isso não funciona.

Alguém sabe me dizer como fazer isso no XP?

Grato,

Evandro André.

Postado

Sinceramente, nunca utilizei essa forma de comando, nem localizei referência a isso. EU fazia links específicos com os parâmetros a serem passados.

ex.: test.bat

@echo off

if "%1"=="" goto ops

echo Parametro %1 foi passado

goto fim

:ops

echo nada foi passado

:fim

echo concluido

---------------------------

test

nada foi passado

concluido

test banana

parametro banana foi passado

concluido

Postado

Ligeiro76, nas propriedades do atalho você pode especificar que parâmetros serão passados para o .BAT que esse atalho executa, assim:

1 - crie um atalho para o .BAT no desktop

2 - clique com o direito no atalho, vá em Propriedades e na aba Atalho, na frente do nome do .BAT, no campo Destino:, acrescente os parâmetros que você quer passar ao .BAT

E você pode criar vários atalhos no desktop, cada um com um nome e passando parâmetros diferentes para o mesmo .BAT.

Agora, se o que você pretende é que o .BAT interrompa sua execução e aguarde a digitação de um parâmetro, se esse parâmetro for apenas uma tecla, dá prá fazer mas através da criação de um .COM que, chamado de dentro do .BAT, interrompa a execução do .BAT e aguarde o pressionamento de uma tecla. Pressionada essa tecla, esse .COM ecoa para a variável de ambiente ERRORLEVEL o valor da tecla pressionada. Aí fica fácil, no .BAT, você tomar alguma decisão testando essa variável de ambiente.

É um pouco trabalhoso mas se for esse o caso diz aí que a gente desenvolve.

Postado

Olá, rmlazzari.

Bom dia!

Entendi, e agradeço a sugestão que me deu de criar vários atalhos com parâmetro diferentes, mas o que eu gostaria mesmo era de ter algo que funcionasse de forma mais genérica, como era possível fazer no Win98.

Um exemplo simples, só para ilustrar:

Supondo que eu quizesse listar todos os arquivos de um diretório com uma extensão específica:

@echo off

dir "c:\Pasta01\*.%1"

e o atalho ficaria: Lista_file.bat ?

Ao chamar o atalho, uma caixa de diálogo seria aberta e eu passaria o parâmetro desejado: doc, xls, exe, etc...

No 98 isso funcionava bem, mas no XP não abre a caixa de diálogo.

Se conhecer alguma maneira de fazer isso funcionar, seria ótimo.

Desde já agradeço,

Evandro André.

Postado

Evandro,

Olá, rmlazzari.

Bom dia!

Entendi, e agradeço a sugestão que me deu de criar vários atalhos com parâmetro diferentes, mas o que eu gostaria mesmo era de ter algo que funcionasse de forma mais genérica, como era possível fazer no Win98.

Um exemplo simples, só para ilustrar:

Supondo que eu quizesse listar todos os arquivos de um diretório com uma extensão específica:

@echo off

dir "c:\Pasta01\*.%1"

e o atalho ficaria: Lista_file.bat ?

Ao chamar o atalho, uma caixa de diálogo seria aberta e eu passaria o parâmetro desejado: doc, xls, exe, etc...

No 98 isso funcionava bem, mas no XP não abre a caixa de diálogo.

Se conhecer alguma maneira de fazer isso funcionar, seria ótimo.

Desde já agradeço,

Evandro André.

Você poderia usar uma linguagem de script do tipo AutoIt para obter um resultado como esse que você espera. Inclusive, poderia adicionar até mais opções. Passe mais detalhes, apenas a extensão é que seria passada, ou também o caminho da pasta?

@rmlazzari, eu havia implementado a solução daquele seu problema usando também o AutoIt. A programação usando esse script é bem simples. Lembra muito a linguagem BASIC.

;)

NW

Postado

Olá, LNW!

Obrigado pela sugestão.

Não conhecia o AutoIt, mas já fiz algumas pesquisas aqui, e me pareceu bem interessante.

Não sou programador, mas tenho uma noção de lógica de programação. Acho que vou conseguir desenvolver alguma coisa.

Qualquer dúvida eu posto aqui...

Quanto ao exemplo que citei no último post, eu passaria também o caminho da pasta.

Abraço,

Evandro André.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!