1

Мне нужна помощь с этим оператором в тот момент, когда при выполнении в командном файле он запустит все строки текстового файла, например

file1.txt:

notepad
wordpad

так он запустит:

start notepad
start wordpad

Хотя я хотел бы иметь возможность указать, какую строку он будет выполнять, вместо того, чтобы выполнять их все (что он делает в данный момент)

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

4 ответа4

1

Я не уверен, что вы хотите (или в чем проблема), но это выглядит так, как будто вы должны использовать ключ /w команды start :

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

Вот пакетный файл, который позволит вам выбрать один из двух вариантов:

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
1

Просто скопируйте файл .txt в new_batch_file.bat, а затем используйте следующую команду для его вызова:

  • CALL new_batch_file.bat
0

Как насчет этого?

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

Это простая, но приятная система меню. Вы можете использовать цифры или буквы (или слово без пробелов) в качестве ключа. Я сохранил это очень просто, чтобы вы могли видеть, как взаимодействовать с ним. (Например, вы можете создать набор каталогов как целую систему меню, где все пункты меню находятся внутри файлов 'dir.menu'.)

Пример использования:

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

>menu p
[mspaint is launched]
>

ОБНОВЛЕНО: протестировано и исправлено несколько вещей с моего компьютера, а не с телефона.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .