即便是在目录以管理员身份打开的powershell仍然不能够运行脚本,但是在win打开的可以,
都是以管理员身份打开的。
我知道这个跟“允许未签名的脚本运行”那个设置有关,但是为什么同样是终端,都是用管理员打开,怎么就不一样。
即便是在目录以管理员身份打开的powershell仍然不能够运行脚本,但是在win打开的可以,
都是以管理员身份打开的。
我知道这个跟“允许未签名的脚本运行”那个设置有关,但是为什么同样是终端,都是用管理员打开,怎么就不一样。
因为powershell是应用程序。
比如ls
命令,在cmd那里是没有这个命令的,但是在powershell里面可以:
甚至可以这么说,powershell算是模拟了一个能用Linux终端命令的“模拟器”,先翻译成dos命令,再执行。
所以windows没有给外部应用直接运行脚本的权利。
硬要想,则可通过设置允许“允许未签名的脚本运行”,可以参考https://zhuanlan.zhihu.com/p/493496089
原因大概是因为在CMD里面执行hexo和PowerShell执行的hexo,它们不是同一个脚本。
猜测可能是在powershell中执行命令时,ps1脚本的优先级会比cmd脚本更高,所以总是会去执行hexo.ps1这个文件。
CMD不支持powershell,所以不会执行ps1这个脚本,执行的是hexo.cmd。
有个解决方法,可以尝试把hexo.ps1删除掉,powershell应该就会去执行cmd了。