Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 为mklink命令创建脚本_Windows_Bash_Cmd_Mklink - Fatal编程技术网

Windows 为mklink命令创建脚本

Windows 为mklink命令创建脚本,windows,bash,cmd,mklink,Windows,Bash,Cmd,Mklink,我想创建一个bash文件(.sh文件),该文件使用dos mklink命令创建符号链接 mklink/D“路径”“路径” 在bash中使用此窗口命令 但当我尝试这样做时,我得到了一个错误:mklink:command-notfound 如何解决此问题?要在Windows中使用mklink,请阅读关于的信息 默认情况下,只有管理员才能创建符号链接。安全设置“创建符号链接”可在以下位置授予:Configuration\Windows Settings\security Settings\Loca

我想创建一个bash文件(.sh文件),该文件使用dos mklink命令创建符号链接

mklink/D“路径”“路径”

在bash中使用此窗口命令

但当我尝试这样做时,我得到了一个错误:mklink:command-notfound


如何解决此问题?

要在
Windows
中使用
mklink
,请阅读关于的信息

  • 默认情况下,只有管理员才能创建符号链接。安全设置“创建符号链接”可在以下位置授予:
    Configuration\Windows Settings\security Settings\Local Policies\User Rights Assignment\*

  • 创建符号链接需要提升,但是从Windows 10 build 14972,可以创建符号链接,而无需将控制台提升为管理员-但是需要启用开发者模式。

因此,您可以启用开发者模式启用

我喜欢在对系统设置进行任何更改后应用引导,这是我的习惯,因此我重新启动并键入:

C:\Users\ecker>mklink/D”%userprofile%\Documents\Call of Duty Black Ops II save“C:\Program Files(x86)\Steam\steamapps\common\Call of Duty Black Ops II\players”
为C:\Users\ecker\Documents\Call of Duty Black Ops II创建的符号链接保存C:\Program Files(x86)\Steam\steamapps\common\Call of Duty Black Ops II\Player
C:\Users\ecker>mklink
创建符号链接。
MKLINK[/D][/H][/J]]链接目标
/创建一个目录符号链接。默认值是一个文件
符号链接。
/H创建硬链接而不是符号链接。
/J创建一个目录连接。
Link指定新的符号链接名称。
目标指定新链接的路径(相对或绝对)
指。
Obs.:您还可以使用激活Windows 10的开发人员模式,也可以使用cmd命令行或批处理文件:

reg添加“HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock”/t reg\u DWORD/f/v“Allowdevelopmentwithout devlicense”/d“1”

  • 进一步阅读:

    [√]

    [√]

    [√]


您不使用Windows命令,而是使用以下命令:
ln-s/path/to/dir/path/to/symlink
@Compo您能给我一个示例我提供的命令有什么问题吗?@Compo请给出一个示例路径。如果
ln-s
没有在您的上下文中创建本机Windows符号链接,您必须运行
cmd.exe/c“mklink”
因为
mklink
是CMD shell的一个内部命令。顺便说一句,CMD不是DOS;它是一个Windows控制台应用程序。我假设为了修改/创建
HKEY_LOCAL_机器
中的注册表项、值和数据,您需要以管理员身份运行
reg.exe
CMD命令行或者批处理文件。如果已经允许您这样做,您还可以创建符号链接!创建符号链接不需要提升,即高完整性级别。Microsoft的文档在这一点上基本上是混乱的。默认情况下,只有administrators组被授予符号链接权限。授予gr的权限仅当组已启用,且标准访问的UAC筛选令牌已禁用administrators组时,才会将oup添加到访问令牌。但如果您将权限授予不受UAC筛选的组,例如“已验证的用户”众所周知的组,则不会将其从访问令牌中筛选出来。在开发人员模式下,文件系统不需要symlink权限,而对于WinAPI
createSymbolicClinKW
,标志
SYMBOLIC\u LINK\u flag\u ALLOW\u UNPRIVILEGED\u CREATE
的唯一目的只是防止它在无法获得权限时调用失败无法启用。但是,其他功能,如
CopyFileExW
COPY\u FILE\u COPY\u SYMLINK
仍然没有意识到这一点,甚至在开发人员模式下也需要此权限。@Compo谢谢您的评论,我没有尝试添加密钥,只是按照GUI启用开发模式。@Eryk Sun解释:我是Windows 10中的本地用户/管理员,还有mklink不工作管理员启动cmd?只有在窗口10中启用开发模式后,它才会工作,为什么?但请确保文档被混淆,并感谢您的评论…
mklink
如果您直接向用户或非管理员组(如“已验证用户”)授予符号链接权限,任何模式下的任何用户都可以正常工作。否则,如果只有administrators组具有此权限,则必须提升以获取完整的管理员令牌(但重要的是该组,而不是提升的完整性级别).CMD也被更新为调用
createSymbolicClinKW
,带有标志
SYMBOLIC\u LINK\u flag\u ALLOW\u UNPRIVILEGED\u CREATE
,因此在开发者模式下不需要特权。