我正在构建一个安装包并有一个安装目录,(如果用户需要/想要,显然可能会改变)。在根安装目录的子目录中是一个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文件,使用这个脚本在同一个dir中创建一个快捷方式....
@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%
但是我不确定如何将命令行参数包含在这个文件中...如果有人能给出一个令人惊讶的想法。
答案 0 :(得分:1)
您可以使用%0
,%1
,%2
格式获取cmd行参数。在当前代码中使用%~d0
时,您将从参数letter drive
中提取%0
。
This MS page can probably help you
奇怪的是,如果点击它,链接就会起作用,但对某些用户来说则不然。如果您想要将其粘贴到首选浏览器中,请选择以下路径。正如您在链接中看到的那样,这是从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 /?
,您将获得一段文本,向您显示如何调用该程序,以及可以传递的参数列表。虽然参数通常通过名称识别......但他们的名字意义不大因为一旦在程序中,程序员可能已对其进行编码,以便只有参数位置重要,或位置和名称,或其他任何其他鸡尾酒他所要求的业务规则。虽然如果文档中提供了说明,请按照说明进行操作非常重要。