【问题标题】:CMD/PowerShell start app with passed "Start in" path parameter without creating shortcutCMD/PowerShell 使用传递的“Start in”路径参数启动应用程序而不创建快捷方式
【发布时间】:2017-03-14 19:38:25
【问题描述】:

很抱歉,如果这个问题已经在任何地方得到回答,但找不到任何关于它的合法话题。

我遇到了看似简单的问题,但还没有找到优雅的解决方案。

我正在尝试从命令行(或 PowerShell)运行 exe,这样我可以将“Start in”路径参数传递给它。这样做的原因是,我已经更新了网络驱动器上的 exe 文件,这些文件依赖于具有相对路径的本地 DLL,因此它需要它们在同一个文件夹中。

我不想简单地将文件复制粘贴到原始文件夹中并覆盖原始文件夹。目前,执行此操作的选项之一是在 exe 旁边创建 .lnk 快捷方式文件,并将“Start in”参数设置为包含 .dll 文件的本地文件夹。 我想避免创建 .lnk 文件的需要,并想知道是否可以像 .lnk 传递它们一样直接调用带有传递参数的 .exe 文件?

我尝试使用命令 processname.exe /K "cd /D C:\originalPathWithDlls" 来执行此操作,但这似乎不适用于命令行窗口。

谢谢。

【问题讨论】:

    标签: windows powershell cmd


    【解决方案1】:

    cmd 命令行,这些都可以工作

    start "" /d "x:\where\dlls\are" "w:\the\file.exe"
    wmic process call create "w:\the\file.exe", "x:\where\dlls\are"
    

    从powershell,你可以使用

    start-process -FilePath "w:\the\file.exe" -WorkingDirectory "x:\where\dlls\are"
    ([wmiclass]"win32_Process").create("w:\the\file.exe", "x:\where\dlls\are")
    

    【讨论】:

    • 天哪!就这么简单! :O 谢谢!
    • 不过,附带说明 - 这在 cmd 中有效,但在 powershell 中无效。使用 Invoke-Expression 是一种解决方法,但您是否也知道如何直接在 PS 中做同样的事情?谢谢!
    猜你喜欢
    • 2015-10-27
    • 1970-01-01
    • 1970-01-01
    • 2021-03-09
    • 2016-12-05
    • 1970-01-01
    • 2012-10-29
    • 2015-03-09
    • 1970-01-01
    相关资源
    最近更新 更多