我现在需要这个语句的帮助,当在批处理文件中执行时,它将启动文本文件的所有行,例如
文件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]
>
更新:我用我的电脑而不是手机测试并纠正了一些问题。