【问题标题】:In a batch file I want to run an exe with command line args which are contained in a text file在批处理文件中,我想使用包含在文本文件中的命令行参数运行 exe
【发布时间】:2015-03-12 03:57:12
【问题描述】:

在批处理文件中,我想打开并运行带有命令行参数的 .exe。但不是列出所有参数——有很多——我想把参数放在一个文件中,然后把文件名放在 .exe 文件后面。

像这样:test.exe args.txt

但这不起作用或 test.exe @args.txt

谢谢!我在 Windows 7 上。

【问题讨论】:

  • 如果您可以将它们全部输入到文本文件中,为什么不能直接在批处理文件中输入呢? test.exe arg1 arg2 arg3 arg4 ... 工作。
  • 我无法将它们全部输入到批处理文件中,因为 exe 文件需要使用由批处理文件中的前一行调用的另一个程序生成的 args。

标签: windows batch-file command-line-arguments


【解决方案1】:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET "args="
FOR /f "usebackq delims=" %%a IN ("%~1") DO SET "args=!args! %%a"
ECHO executablename %args%

GOTO :EOF

你的运行方式

thisbatchname yourtextfilename

请注意,这只会在屏幕上显示生成的指令,您需要删除 echo 关键字并插入您的可执行文件名称才能实际使用它。

如果你想改变可执行文件名,那么你需要做的就是删除executablename并将你的可执行文件名插入yourtextfilename的第一行

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET "args="
FOR /f "usebackq delims=" %%a IN ("%~2") DO SET "args=!args! %%a"
ECHO "%~1%" %args%

GOTO :EOF

你会在哪里运行它

thisbatchname executablename yourtextfilename

它允许您针对文件中包含的参数列表运行任何可执行文件。

【讨论】:

  • 感谢 Magoo!为我工作。在看了你写的东西和我看到的其他一些东西之后,我也可以这样做:@echo off &setlocal enabledelayedexpansion for /f "delims=" %%i in (testArgs.txt) do start cmd /K simple4.exe %%i"暂停一个批处理文件,我可以点击。
猜你喜欢
  • 1970-01-01
  • 2014-05-31
  • 2022-11-06
  • 1970-01-01
  • 1970-01-01
  • 2014-12-25
  • 2018-07-31
  • 2023-03-11
  • 2012-12-26
相关资源
最近更新 更多