批处理文件帮助(用于语句)

批处理文件帮助(用于语句)

我现在需要这个语句的帮助,当在批处理文件中执行时,它将启动文本文件的所有行,例如

文件1.txt:

notepad
wordpad

因此它将启动:

start notepad
start wordpad

虽然我希望能够指定它将执行哪一行,而不是执行所有行(它目前正在执行)

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

答案1

我不确定你想要什么(或者问题是什么),但它读起来像你需要使用命令/w的开关start

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

答案2

这是一个批处理文件,可让您在两个选项之间进行选择:

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

答案3

只需将.txt文件复制到new_batch_file.bat,然后使用以下命令调用它:

  • 调用新批处理文件.bat

答案4

这个怎么样?

目录菜单

# 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

菜单脚本

@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]
>

更新:我用我的电脑而不是手机测试并纠正了一些问题。

相关内容