惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 聂微东
C
Cisco Blogs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
MyScale Blog
MyScale Blog
云风的 BLOG
云风的 BLOG
人人都是产品经理
人人都是产品经理
The GitHub Blog
The GitHub Blog
月光博客
月光博客
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
V
Vulnerabilities – Threatpost
博客园 - Franky
A
Arctic Wolf
T
Tenable Blog
P
Privacy & Cybersecurity Law Blog
雷峰网
雷峰网
Blog — PlanetScale
Blog — PlanetScale
C
CERT Recently Published Vulnerability Notes
Spread Privacy
Spread Privacy
Latest news
Latest news
小众软件
小众软件
Google DeepMind News
Google DeepMind News
IT之家
IT之家
量子位
U
Unit 42
T
Threatpost
I
InfoQ
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
G
GRAHAM CLULEY
K
Kaspersky official blog
T
Tor Project blog
Scott Helme
Scott Helme
AWS News Blog
AWS News Blog
Hugging Face - Blog
Hugging Face - Blog
PCI Perspectives
PCI Perspectives
N
Netflix TechBlog - Medium
Martin Fowler
Martin Fowler
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Recent Commits to openclaw:main
Recent Commits to openclaw:main
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
V
Visual Studio Blog
S
Securelist
L
LINUX DO - 热门话题
Apple Machine Learning Research
Apple Machine Learning Research
Cisco Talos Blog
Cisco Talos Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
S
Schneier on Security
D
DataBreaches.Net

PowerShell

求助在 Windows 桌面运行某个程序的多个实例并在整个穿够屏幕布满的 powershell 脚本, GPT 生成的也无法平铺位置随机的。 - V2EX 是我孤陋寡闻了吗? powershell 里面其实支持顺斜杠, tab 补全也能改成顺斜杠 - V2EX 求助:如何阻止 Powershell 生成 tmp 文件 请教 win11 powershell 设置别名的问题 - V2EX 如何确定 powershell 在终端输出的信息是 stdout 还是 stderr? - V2EX ps1 文件如何双击以管理员身份运行 - V2EX V2EX ps 无法显示 bash 命令的完整参数,是 bug 吗? - V2EX powershell setx 变量后无法自身得到变量值 - V2EX 请教, powershell 脚本中使用中文,脚本文本存储的是 utf-8,运行后中文就是乱码。 - V2EX oh-my-posh 导致 powershell 启动缓慢 - V2EX powershell 管道问题 - V2EX 如何在打开 powershell 脚本的时候, cd 到脚本所在目录 - V2EX 如何让 powershell 输出的 txt 日志为 unix lf 格式 - V2EX 这个 powershell "比对”命令能优化吗? - V2EX cmd 输出日志的时候,如何不写入重复日志 - V2EX 请教-关于 PowerShell 的使用场景问题——竞赛,编程挑战,运维需求在哪里找 - V2EX Windows 运行 ffmpeg 批量脚本的时候,如何在不中断的情况下限制 CPU 使用率 - V2EX cmd 控制台显示输出日志过滤 - V2EX powershell7, 执行速度和自动补全速度都慢的令我抓狂 - V2EX 请教一下.ps1 运行时如何让 powerShell 同时显示所运行命令的内容 - V2EX 有什么不错的 powershell 书籍吗? - V2EX PowerShell 是否可以实现类似 expect 的功能? - V2EX PowerShell 启动慢 - V2EX 现在 PowerShell 是不是没有什么用? - V2EX PowerShell 竟然强悍如斯! - V2EX 请问如何使用 powershell 禁用/启用设备? - V2EX 逐浪 CMSv8.2 发布-集成 Node 与 Vue 脚手架和 PowerShell 支持的新一代网站管理系统 Powershell 的管道兼容性 powershell 的独门秘技之气运“丹田” powershell 的 tab 参数补全的,两个不同方式详解。 - V2EX 在 PowerShell 中好好说话 在 PowerShell 中使用 fish-style 自动补全提示 - V2EX PowerShell 与 Windows Terminal 增强配置 - V2EX 怎么把一个脚本方法注册为系统的环境变量? - V2EX !微软又放鸽子了! - V2EX 分享 powershell ssh to Linux 脚本。 PowerShell Core 7.0 RC 已经发布 powershell 一个很诡异的问题 - V2EX powershell 的 ntp 校时脚本,光棍节秒杀专用! PowerShell 如何强行覆盖一个文件 - V2EX 如何使用命令行或 PowerShell 删除一个已经安装好的证书 PowerShell 如何导入已有的 SSL 证书 - V2EX PowerShell 如何定义文件夹的权限 - V2EX 推荐一个 github 上的 PowerShell 项目 - V2EX Out-GridView 在 PowerShell Core 中回归了 - V2EX powershell 6, 7 的新特性。 - V2EX 新出炉的 ssh-copy-id6.ps1,是新版 vscode 的最佳拍档 - V2EX 把那 5000 多万条企业数据放到 SQLite 数据库里
powershell 运行 ps 文件的时候,如何支持带空格的路径 - V2EX
1054850490 · 2023-02-13 · via PowerShell

这是一个创建于 1217 天前的主题,其中的信息可能已经有所发展或是发生改变。

列如我在以下的文件夹中打开了一个 PS 文件

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

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

还有另一个问题,就是我右键 ps 文件的时候,有个选项是“使用 powershell 运行”,这时候当前路径带空格也没事
但是如果我绑定了默认应用,也就是所有 ps1 文件都以“C:\Windows\System32\WindowsPowerShell\v1.0”改路径下的 powershell 运行,然后此时我双击运行的时候,就会出现我上述第一个问题,该路径找不到

Tumblr

1

Tumblr      2023 年 2 月 13 日

首先,不要设置 ps1 双击运行!不要设置 ps1 双击运行!不要设置 ps1 双击运行!
其次,运行 PowerShell 脚本的方法有很多种:
1. 在 PowerShell 里用 & "path to script.ps1"
2. 在 PowerShell 里用 . "path to script.ps1"
3. 在 PowerShell 里用 iex "path to script.ps1"
4. 在 PowerShell 里用 Invoke-Expression "path to script.ps1"
5. 直接运行 powershell -file "path to script.ps1"

剩下的自己去挖掘吧。

1054850490

2

1054850490      2023 年 2 月 13 日

@Tumblr 如果必须以快捷方式运行呢?每次运行复制一下很麻烦,因为这个程序我需要绑定快捷键唤醒一下,运行频率非常的高,但是是我手动在控制,如果每次都需要复制运行的话对我来说是非常的麻烦

id7368

3

id7368      2023 年 2 月 13 日 via iPhone

英文双引号即可

1054850490

4

1054850490      2023 年 2 月 13 日

@id7368 是 ps1 文件运行的时候,默认以 ps1 所在当前文件夹为路径打开控制台,这优先级是非常高的,哪怕你设置了绝对路径也是闪退,因为事先就设定了当前路径

thinkershare

5

thinkershare      2023 年 2 月 13 日

@1054850490 这是旧版本 powershell 的一个 bug ,升级 powershell 为 powershell 7 好了,使用 pwsh.exe 打开 ps1 就不会有问题了。

1054850490

6

1054850490      2023 年 2 月 13 日 via Android

@thinkershare 啊这是 bug 吗?我感觉不像,这是最容易触发的问题,只要文件夹带空格就炸了,但是找了很多外网论坛都找不到办法,我待会试试新版本看看

Crabby

7

Crabby      2023 年 2 月 13 日

# from cmd.exe
powershell [noexit] "& path\xxx.ps1"
or
pwsh -command "& path\xxxx.ps1"

thinkershare

8

thinkershare      2023 年 2 月 13 日

@1054850490 你也可以认为它是一个 feature, 不过 PowerShell 不跨平台的版本也是时候丢弃了。用新版的,快多了,而且各方面都有增强,也方便在 Linux 是使用。

bg7lgb

9

bg7lgb      2023 年 2 月 13 日 via Android

win10 默认 ps 版本太低了,升级到 7 以后打开了新的窗户

lifansama

12

lifansama      2023 年 2 月 14 日 via Android

既然右键选择运行那你问题,可以改一下注册表吧
HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell\ ,修改右侧的默认键值
0 表示直接运行
Edit 表示用 PowerShell ISE 打开
Open 表示用记事本打开

FYFX

13

FYFX      2023 年 2 月 14 日

@1054850490 #2 你可以写在快捷方式的 target 里面写 powershell.exe -File "path to script.ps1"

thinkershare

14

thinkershare      2023 年 2 月 14 日

@1054850490 并不会,我刚刚才还特意去测试了一下,pwsh.exe 在文件夹有空格的情况下能正常工作,怀疑你的 ps1 脚本内部写的有问题。

1054850490

16

1054850490      2023 年 2 月 14 日

@thinkershare 下面是我运行 powershell 运行的全部命令

$env:HTTP_PROXY="http://127.0.0.1:1081"
$env:HTTPS_PROXY="http://127.0.0.1:1081"
yt-dlp --lazy-playlist --flat-playlist --print "/watch?v=%(id)s" --print "/shorts/%(id)s" "https://www.youtube.com/playlist?list=PLsPAeAwxHrfMjtOU5Y-2qT32aMIP2nCFH" *>&1 | % {$_; if($_ -notin (gc "总文件 15.txt")){$_ >>"总文件 15.txt"}}
pause

我也上传了一个视频用于讲解我遇到的问题

视频里可以看到,我右键运行是没问题的,但是绑定了默认 powershell 应用双击后直接就闪退,而绑定的是 powershell 无论是 64 位还是 32 位都闪退,但是右键运行就没问题,而且在里面的 pow7 运行的时候也提示错误,看这个提示应该是指路径有问题,我换一个没空格的文件夹就不跳了

thinkershare

18

thinkershare      2023 年 2 月 14 日

你的脚本在双击运行时候,将文件 总文件 15.txt 定位到了系统目录,而你运行的身份没用对此目录文件的写入权限,所有就挂掉了。正常情况 总文件 15.txt 会定位到你运行脚本的文件夹。然后首次文件不存在会报一次错误,然后就应该一切工作正常。你尝试将脚本分开写,然后下中间结果,或者打印下当前的工作目录看看,验证下我的猜想。

1054850490

19

1054850490      2023 年 2 月 15 日

@thinkershare


我运行这个脚本就是在管理员账户下运行的

在一闪而过的画面,我录屏捕捉到的信息如下

---------------------------------

题外话
当我用#16 楼的代码运行的时候,就会跳出以下警告

哪怕路径不带空格也会跳出这个警告,虽然对最终结果没有运行,但是我不知道这个未来会不会影响某些东西,能不能告诉我是哪里错误了?还有如何关掉之类的警告

thinkershare

20

thinkershare      2023 年 2 月 15 日

@1054850490 不要去修复 PowerShell 上的错误, 那是一个无法修复的错误, 虽然可以使用注册表来处理这个问题。
尝试修复 pwsh.exe 的错误,这个错误很容易修复。就是你的路径定位错误。

当我用#16 楼的代码运行的时候,就会跳出以下警告: 这个是 yt-dlp 内部的错误,和 powershell 没啥关系,这个错误是 YouTube 返回的错误,它说这个视频是: Unavaiable videos are hidden.

```powershell
$env:HTTP_PROXY="http://127.0.0.1:1081"
$env:HTTPS_PROXY="http://127.0.0.1:1081"

Get-Location # 看下为啥你的 powershell 会将活动目录定位到系统路径(pwsh 下)
New-Item -ItemType File -Name '总文件 15.txt'
pause

yt-dlp --lazy-playlist --flat-playlist --print "/watch?v=%(id)s" --print "/shorts/%(id)s" "https://www.youtube.com/playlist?list=PLsPAeAwxHrfMjtOU5Y-2qT32aMIP2nCFH" *>&1 | % {$_; if($_ -notin (gc "总文件 15.txt")){$_ >>"总文件 15.txt"}}
pause
```

1054850490

21

1054850490      2023 年 2 月 15 日

@thinkershare 我最下面那个图并不是指那个:
WARNING: [youtube:tab] YouTube said: INFO - 120 unavailable videos are hidden

而是指那个:
所在位置 C:\Users\yerin\Desktop\新建文件夹 (2)\无标题 8.ps1

1054850490

22

1054850490      2023 年 2 月 15 日

@thinkershare pwsh 确实将 ps1 默认运行路径定为"C:\Windows\System32"导致的,而我本机 win10 的 powershell 5.0 运行的时候会把 ps1 所在目录当做运行路径,所以 pwsh 就是路径错误,可是我这个脚本就是想要以 ps1 所在目录运行的,如果是绝对路径的话又很麻烦,同样的,偶尔也会出现#19 楼最后一张图的警告,我不知道这个警告什么意思,哪怕事先文件夹已经创建了“总文件 15.txt”

1054850490

23

1054850490      2023 年 2 月 15 日

@thinkershare #19 楼最后图的警告我大概知道为什么引起的了,是因为 youtube 发出的警告,然后 powershell 就会报告是谁引起的错误

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

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

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