系统:10
写了一个非常简单的代码,保存后双击文件并任何反应,就像没有运行一样,
但是用 visual studio code 打开文件,运行就能达到效果
代码只有一行
1
ghmum OP 代码不让放,放代码就 1000 天
脚本的作用是结束所有的 记事本 进程 |
2
passerbytiny 2021-08-27 09:21:31 +08:00 via Android
win10 默认情况下禁止执行 PS 脚本,需要手动配置权限。怎么配置忘了,你搜索一下很容易找到
|
3
kiracyan 2021-08-27 09:42:35 +08:00
powershell 脚本右键运行吧 双击默认是打开 或者写个 bat 去调用
|
4
ghmum OP 因为这个脚本是写来放开机启动的,但是发现开机后脚本并没有运行
|
6
ExplorerLog 2021-08-27 09:53:25 +08:00
Powershe ll 脚本的 4 种执行权限
Restricted: 默认的设置, 不允许任何 script 运行 AllSigned: 只能运行经过数字证书签名的 script RemoteSigned: 运行本地的 script 不需要数字签名,但是运行从网络上下载的 script 就必须要有数字签名 Unrestricted: 允许所有的 script 运行 |
8
dinghmcn 2021-08-27 10:05:06 +08:00
记得安装 scoop 的时候要开放权限的
|
9
Tumblr 2021-08-27 10:21:33 +08:00
|
10
ghmum OP @ExplorerLog 当下的权限设置是 RemoteSigned,应该没什么限制吧
|
12
ghmum OP @passerbytiny 我搜索了一下,好像是没有搜到:-(
|
13
Tumblr 2021-08-27 11:33:31 +08:00
@ghmum #11 这是正常的,ps1 既不是程序也不是可执行脚本。如果要开机启动就用计划任务吧,或者写个 bat 文件来调用你的 ps1 。
|
14
canbingzt 2021-08-27 13:53:13 +08:00
|
15
ysc3839 2021-08-27 18:01:42 +08:00
@Tumblr 正常情况应该是用记事本打开这个文件,我这边的 shell open command 是这样的。没有任何反应的话可能是被改过了。
如果你想实现不修改设置,直接打开就能执行的话,可以用下面这种写法 ``` <# : @powershell.exe -NoProfile -Command "Invoke-Expression (${%~f0} | Out-String)" @exit /b #> Write-Host 'PowerShell!!!' ``` 保存为 .cmd 或 .bat 后缀的文件即可。 印象中是在 StackOverflow 上看到的,但是刚刚没找到。 这里利用了 cmd 重定向符可以出现在任意位置的特性,`<# :` 会被当成标签解析,不会出现语法错误。 https://devblogs.microsoft.com/oldnewthing/20060518-07/?p=31153 以及 cmd 在遇到 exit 或者 goto :EOF 时不会继续解析后面的代码,所以在里面写别的脚本也不会出现语法错误。 然后 <##> 又是 PowerShell 的注释,所以 PowerShell 执行时也不会出现语法错误。 powershell.exe 的参数不能直接传文件名,因为 PowerShell 会检查文件名后缀是不是 .ps1 ,所以需要把文件内容读出来执行。 |
16
exip 2021-08-27 20:32:34 +08:00 via Android
通过 vbs 调用 ps1,不用修改 ps 的执行权限。
|