【问题标题】:How to open a shortcut with windows command line and parameters如何使用 Windows 命令行和参数打开快捷方式
【发布时间】:2015-04-21 14:30:03
【问题描述】:

我在我的桌面上创建了一个 python 脚本的快捷方式。

现在我想用命令行和参数打开它。

如果我打开快捷方式的属性,可以添加参数,但是不能用命令行强制打开。

这些文件的默认程序是notepad++,但如果我将其更改为“命令行”并双击它,那么只会打开命令行并使用快捷方式中给出的相应路径,但不会执行文件。

我需要做什么?

【问题讨论】:

  • .py 和 .pyw 脚本不应主要与编辑器相关联。因此,首先要修复关联以使用由 Python 安装程序创建的 Python.FilePython.NoConFile 类型。

标签: python windows command-line


【解决方案1】:

我想知道如何做到标题所说的“如何使用 Windows 命令行和参数打开快捷方式”。

我的意思是:

  • 从命令行,运行快捷方式并向其传递参数

该快捷方式指向一个批处理文件,并已设置以管理员权限运行。是的,快捷方式将参数传递给它们指向的应用程序/批处理,因此无需在 LNK 上添加参数它自己......最糟糕的是参数是可变的,如果你在 LNK 上放置任何参数,它会被视为文字...如果 LNK 有一些参数,则在 LNK 参数之后添加 START 上的参数(已测试)。

那个批处理文件(用于测试)可以这么简单:

@ECHO OFF
ECHO Parameter 1 is: %1
PAUSE

如果我使用 start 运行 .lnk(快捷方式),会发生两件事:

  1. 如果参数不包含",它将运行批处理文件
  2. 如果参数包含",它甚至不会运行批处理文件

那么我怎样才能传递一个有空格的参数呢?例如路径、文件名等。

我不想使用该选项来设置一个全局变量,也不想将该参数保存在文件中,等等。

实际上我正在尝试在另一个批次中使用完全合格的 START 命令:

@ECHO OFF
ECHO DeBug - start-
start "Some Title Is Requiered, can be empty" /D "Starting Path" /WAIT "Full Path to the LNK file.lnk" %1
ECHO DeBug - stop-
PAUSE

这样的 .lnk 指向样本批次(上面有 PAUSE)。

如果我使用不带空格且不带引号的参数调用批处理,它可以完美运行,但只要参数包含空格或引号,快捷方式指向的批处理就不会运行(但管理员权限询问出现在所有情况下,并且当然,我在所有情况下都按是)。

【讨论】:

    【解决方案2】:

    将快捷方式目标更改为“cmd文件名”(即在目标前添加“cmd”)

    【讨论】:

    • 我相信你在关注cmd /k filename/k 选项使 shell 在 filename 退出后继续运行。这样控制台窗口就不会自动关闭。但是,如果文件类型关联错误,除非 OP 使用明确的命令行,例如 cmd.exe /k ""C:\Python27\python.exe" "C:\...\path\run.py" parameters",否则它将无济于事。如果您不希望控制台窗口保持打开状态,请使用 /c 而不是 /k
    猜你喜欢
    • 2012-05-12
    • 1970-01-01
    • 1970-01-01
    • 2013-04-29
    • 2021-12-30
    • 1970-01-01
    • 2020-02-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多