[英]Run exe from bat file with command line arguments
我正在构建一个安装软件包,并具有一个安装目录(如果用户需要/需要,显然可以更改)。 bat安装目录的子目录中有一个bat文件,它将复制文件,然后运行一个程序,然后运行另一个程序。 目前看起来像这样。
@echo off
xcopy %~d0\dir-files\record\*.* "%~dp0input" /Y
10th-f-Downsampling.exe start /wait
cd..
start Dashboard.exe
问题是我需要将命令行参数添加到下采样exe --max_old_space_size = 3000
问题是为了做到这一点(根据我目前对bat文件的了解,这是有限的)是创建快捷方式并以通常的Windows快捷方式输入命令行参数。 我无法创建相对快捷方式,也不确定如何做到最好。 有任何想法吗?
好吧,到目前为止,我已经设法创建了一个bat文件,该文件使用此脚本在同一目录中创建了一个快捷方式。
@echo off
set SCRIPT="%TEMP%\%RANDOM%-%RANDOM%-%RANDOM%-%RANDOM%.vbs"
echo Set oWS = WScript.CreateObject("WScript.Shell") >> %SCRIPT%
echo sLinkFile = "ShortcutName.lnk" >> %SCRIPT%
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> %SCRIPT%
echo oLink.TargetPath = "MyApp.exe" >> %SCRIPT%
echo oLink.WorkingDirectory ="" >> %SCRIPT%
echo oLink.Save >> %SCRIPT%
cscript /nologo %SCRIPT%
del %SCRIPT%
但是我不确定如何将命令行参数包括到该文件中……如果有人可以给出一个令人惊奇的想法。
cmd行参数以%0
, %1
, %2
的形式提供给您。 在当前代码中使用%~d0
,您将从参数%0
中拉出letter drive
。
奇怪的是,如果我单击该链接,该链接将起作用,但不适用于某些用户。 如果您要复制粘贴到您喜欢的浏览器中,请按以下步骤操作。 正如您在链接中看到的那样,这是从WindowsXP文档中提取的,它可以解释为什么链接充其量是片刻的。
编辑似乎您想调用一个程序并在调用该程序时将其传递给参数。 并且您希望从bat文件启动程序。 这与我阅读标题的方式不同。
让我们从一些基础知识开始...为了参考起见,我们将说我今天使用的程序称为GetToWork.exe
我正在使用GetToWork.exe
的程序使我能够以许多不同的方式启动它。
--DontAskMeAnything
。 --AskMeForNewFile
。 --DoItThisWayInstead
。 现在,我不是决定我可以传递哪些参数,也不会决定其结果的人。 实际上,参数是由创建程序的程序员定义的。 当他编写程序时,他决定将这些参数作为允许的参数,并且与它们相关的动作将作为他决定的动作。 程序员记录了这些参数,现在我只想使用它们,因为它们使我的生活更轻松。
为了触发参数行为,我需要在运行程序时将所述参数提供给程序。
如果我想触发--DontAskMeAnything
我会编写以下命令:
GetToWork.exe --DontAskMeAnything
如果我想触发--AskMeForNewFile
,那么我将编写以下命令:
GetToWork.exe --AskMeForNewFile
如果GetToWork.exe允许多个参数,则我可能会编写如下内容:
GetToWork.exe --AskMeForNewFile --DoItThisWayInstead
现在...回到您和您的程序。 您正在使用一个名为10th-f-Downsampling.exe
。 我们,我不知道那个程序。 我不知道该程序可能使用的参数是什么。 为了让您知道应该通过什么,您必须查找该程序的文档。 有时只用/?
调用exe /?
足以获取参数列表。 同样,这取决于将程序制作为/?
的程序员/?
仅仅是程序员允许的另一个参数。 和/?
的结果/?
通常是吐出可用的参数...
让我们分解您当前的代码
xcopy %~d0\dir-files\record\*.* "%~dp0input" /Y
xcopy
%~d0\\dir-files\\record\\*.*
"%~dp0input"
/Y
如果要进入命令提示符并运行此命令xcopy /?
,您将会看到一段文本,向您展示如何调用程序,以及可以传递的参数列表。 尽管参数通常通过名称来识别...它们的名称意义不大,因为一旦在程序中,程序员可能已经对其进行了编码,因此仅参数位置很重要,或者位置和名称很重要,或者他必须遵守的任何其他业务规则。 尽管在文档中提供了指导,但务必遵循指导。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.