Ajuda do arquivo em lote (para instrução)

1

Preciso de ajuda com essa declaração no momento em que, quando executada em um arquivo em lote, ela inicia todas as linhas de um arquivo de texto, por exemplo,

arquivo1.txt:

notepad
wordpad

então será lançado:

start notepad
start wordpad

Embora eu queira ser capaz de especificar qual linha será executada, em vez de executá-los todos (o que está fazendo no momento)

para /f "delims=|" %%i in (file1.txt) do @start "x" %%i

    
por Peter Manton 13.05.2011 / 20:30

4 respostas

1

Não sei ao certo o que você quer (ou qual é o problema), mas parece que você precisa usar a opção /w do comando start :

for /f "delims=|" %%i in (file1.txt) do @start /w "x" %%i
    
por 13.05.2011 / 20:46
1

Aqui está um arquivo em lotes que permite escolher entre as duas opções:

echo off
title Notepad or Wordpad
setlocal
set OK=N

:again
set /p choice=Please enter:    1 [Notepad],    2 [Wordpad]
if [%choice%]==[] goto again
if [%choice%]==[1] goto 1
if [%choice%]==[1] goto 2
set /p xxx=wrong entry, press any key to return.
endlocal
goto end


1: start notepad

2: start wordpad

:end
@echo on
cls
    
por 13.05.2011 / 20:49
1

Copie o arquivo .txt para new_batch_file.bat e use o seguinte comando para chamá-lo:

  • CALL new_batch_file.bat
por 13.05.2011 / 20:44
0

Que tal isso?

dir.menu

# Comments and empty lines are ignored

# Lines starting with a hyphen '-' indicate a group
- Editors
1 Notepad.exe
2 WordPad.exe

# You can use numbers or letters, and even words (without spaces)
- Graphics
P mspaint.exe

menu.bat

@setlocal
@echo off

if not exist ".\dir.menu" echo There is no "dir.menu" file in the current directory. & goto :end

set arg=%~1

if not defined arg goto :show_menu

for /f "tokens=1,* delims= " %%i in (dir.menu) do (
    if not "%%i"=="#" if /i "%arg%"=="%%i" (
        start "x" "%%j"
    )
)

:end
    endlocal
    exit /B

:show_menu
    echo   Menu:
    echo ===================
    for /f "tokens=1,* delims= " %%i in (dir.menu) do (
        if not "%%i"=="#" (
            if "%%i"=="-" (
                echo   %%j
            ) else (
                echo    %%i] %%j
            )
        )
    )
    goto :end

Este é um sistema de menu simples, mas agradável. Você pode usar números ou letras (ou uma palavra, sem espaços) como a chave. Eu mantive isso muito simples para que você possa ver como interagir com ele. (Por exemplo, você poderia criar um conjunto de diretórios como um sistema de menus completo, onde os itens de menu estão todos dentro dos arquivos 'dir.menu').

Uso da amostra:

>menu
  Menu:             
=================== 
  Editors           
   1] Notepad.exe   
   2] WordPad.exe   
  Graphics          
   P] mspaint.exe   

>menu p
[mspaint is launched]
>

ATUALIZADO : testei e corrijo algumas coisas do meu computador, em vez do meu telefone.

    
por 03.01.2017 / 06:42

Tags