原来的不支持有空格的路径,由dugu的批处理中找到方法了,利用windows路径的另外的另外表达方式即可,".\路径" 这个东西用的不多啊,使用这个格式后powershell就能不会将字符串和路径混淆了,从而正常识别有空格的路径;
ftype的改一下,其实批处理的执行代码都是可以转换为文件关联的打开方式的:

ftype Microsoft.PowerShellScript.1="C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe" -command ^& {".\"%1""}

另外原来也可以直接跟随%1参数而不用-comand的(帮助居然不说……)

ftype Microsoft.PowerShellScript.1="C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe" ".\"%1""

=D==I#KE=X=DI+=K==E=X+$D$I$=K#E#$XDIKE=X$DI=#K#EX=DI$K$EX$D#IKE=XDIKEXD+I#+KE$+XD=IKE$X+D#IKE#XD$I

无意中看到这样的一篇文章:曲线实现双击运行powershell脚本(已更新解决曲线问题)

文章中利用了一个bat文件作为中介,实现双击运行ps1文件,觉得有点奇怪,为啥不直接建立文件关联呢?

于是打开cmd,执行assoc得到ps1文件的相关信息,知道.ps1是指向于Microsoft.PowerShellScript.1

好了,这样只需要用ftype修改一下Microsoft.PowerShellScript.1的值就可以了,从powershell /? 可以得到相关信息,于是执行了下面的命令:

ftype Microsoft.PowerShellScript.1="C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe" -command "& {%1}"

OK,现在直接可以双击打开ps1文件,如果不行的话,尝试多执行下面的命令:

assoc .ps1=Microsoft.PowerShellScript.1

另外那个图标嘛,自己喜欢什么就到文件夹选项里面改好了^_^

好了,还要到组策略里面把ps1文件类型也加入到可执行代码文件的行列中,防止某天出现什么意外。