首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Windows上自动创建符号链接

在Windows上自动创建符号链接
EN

Stack Overflow用户
提问于 2022-11-08 15:27:22
回答 1查看 40关注 0票数 1

我正在尝试做一个脚本来做一些目录管理。最后的脚本将在上运行,最好用python编写。在脚本的某个地方,我需要自动创建多个符号链接,在多个文件夹之间。脚本本身没有来自bash终端(Git Bash)的管理员权限运行。Windows不处于开发人员模式。

完美的解决方案是拥有一个元组列表(链接、源),并一次性创建相应的符号链接,同时只需按一次管理员权限的"Yes“。

我已经做了一些研究:

mklink /D link source_directory

powershell 'start cmd -v runAs -Args /k, [comma-separated-args]'

powershell 'start cmd -v runAs -Args /k, cd, $pwd, "&", [comma-separated-args]'

假设我想在我当前的工作目录中创建一个符号链接到一个相对目录。我试了两种方法:

当我组合以上所有点并从Git Bash终端执行以下命令时,

powershell 'start cmd -v runAs -Args /k, cd, $pwd, "&", mklink, /D, \"link_to_utils\", \"common\utils\"'

一个新的终端开放了(在同意了管理权限之后)。但是它导致在C:** .的**根中创建了一个新的符号链接。

当我执行以下操作时,

powershell 'start cmd -v runAs -Args /k, cd, $pwd

一个新的终端开放了(在同意了管理权限之后)。我现在可以运行以下命令:

mklink /D "link_to_utils" "common\utils"

该链接是按照我的要求在当前工作目录中创建的。

所以我的问题是:

( a)如何使选项1在bash中工作?

( b)为什么它实际上在C:\中创建符号链接?

( c)是否有办法将命令输送到已打开的高架cmd终端(使备选方案2工作)?

注意:我一直试图使用python和win32api (pywin32)找到解决方案。但是,这会导致需要创建的每个符号链接都会出现大量的命令提示。此外,几乎没有任何关于pywin32的文档。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-08 16:06:04

使用以下方法:

代码语言:javascript
复制
powershell 'Start-Process -Verb RunAs cmd /k, " cd `"$PWD`" & mklink /D `"link_to_utils`" `"common\utils`" "'

  • 由于是PowerShell逐字解释正在传递的命令行的内容,因此必须遵守其语法规则,这意味着自动$PWD变量的展开(字符串内插)需要一个"..." (双引号)字符串,并且必须将该字符串中的嵌入"字符转义为`" (""也能工作)。

  • cmd.exe的传递命令行作为单个字符串参数传递,以便在概念上更加清晰。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74363226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档