powershell 运行 ps 文件的时候,如何支持带空格的路径

2023-02-13 21:07:45 +08:00
 1054850490
列如我在以下的文件夹中打开了一个 PS 文件

C:\Users\yerin\Desktop\新建文件夹 (2)\无标题 8.ps1

我们可以看到上面的路径中有空格,由于 ps 文件默认是以当前运行的目录作为运行路径,而上面路径也没有双引号圈起来,也没法圈路径,该如何解决当前路径带有空格的问题?虽然控制台可以双引号路径,但是 ps 文件没法事先双引号路径


还有另一个问题,就是我右键 ps 文件的时候,有个选项是“使用 powershell 运行”,这时候当前路径带空格也没事
但是如果我绑定了默认应用,也就是所有 ps1 文件都以“C:\Windows\System32\WindowsPowerShell\v1.0”改路径下的 powershell 运行,然后此时我双击运行的时候,就会出现我上述第一个问题,该路径找不到
2242 次点击
所在节点    PowerShell
23 条回复
1054850490
2023-02-15 15:32:09 +08:00
@thinkershare 我最下面那个图并不是指那个:
WARNING: [youtube:tab] YouTube said: INFO - 120 unavailable videos are hidden

而是指那个:
所在位置 C:\Users\yerin\Desktop\新建文件夹 (2)\无标题 8.ps1
1054850490
2023-02-15 15:53:36 +08:00
@thinkershare pwsh 确实将 ps1 默认运行路径定为"C:\Windows\System32"导致的,而我本机 win10 的 powershell 5.0 运行的时候会把 ps1 所在目录当做运行路径,所以 pwsh 就是路径错误,可是我这个脚本就是想要以 ps1 所在目录运行的,如果是绝对路径的话又很麻烦,同样的,偶尔也会出现#19 楼最后一张图的警告,我不知道这个警告什么意思,哪怕事先文件夹已经创建了“总文件 15.txt”
1054850490
2023-02-15 16:15:40 +08:00
@thinkershare #19 楼最后图的警告我大概知道为什么引起的了,是因为 youtube 发出的警告,然后 powershell 就会报告是谁引起的错误

如果我想解决下图中的警告,这个警告是因为我想读取名为“总文件 15.txt”,但是由于事先没有创建而引发的警告,虽然最后会自动为我创建


但是我并不想像这样事先创建:New-Item -ItemType File -Name '总文件 15.txt'
因为这样的话,我每次改掉 txt 名称的时候还得去改它,有没有办法关掉警告,我也不想依赖 pow7 ,因为看起来 pow7 有更多的问题需要解决,因为它打开 ps1 文件的时候并不是把所在目录当做默认路径,我之前用 cmd 的话,我是用以下代码解决的:
```
cd %~dp0
%~d0

```
这样打开 bat 文件就会自动跳转到当前目录了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/915817

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX