标题: [问题求助] PowerShell怎样把字面字符串中的变量展开? [打印本页]
作者: 小白龙 时间: 2024-3-30 13:01 标题: PowerShell怎样把字面字符串中的变量展开?
下面$HOME是字面量文本, 怎样展开它呢? 下面代码无效- $s = '$HOME\desktop\春天来了.pdf'
- Resolve-Path $s
复制代码
作者: Batcher 时间: 2024-3-30 15:07
回复 1# 小白龙
把单引号改成双引号试试
作者: Five66 时间: 2024-3-30 16:29
英文单引号
换成
英文双引号
用$()界定变量(表达式)
或
用{}界定变量名
作者: 小白龙 时间: 2024-3-30 16:35
回复 3# Five66
感谢楼上两位指导,
可能我描述的有问题, 我需要展开的就是字面量, 它是读取某个文件中的值, 不能手动加"
作者: Batcher 时间: 2024-3-30 16:38
回复 4# 小白龙
请发完成代码
作者: 小白龙 时间: 2024-3-30 16:46
回复 5# Batcher
完成代码就是解析字符串里面的变量实际值, 再加上其后面的文本, 例如我的电脑上展开应该是
C:\Users\Administrator\Desktop\春天来了.pdf
作者: 小白龙 时间: 2024-3-30 16:47
本帖最后由 小白龙 于 2024-3-30 16:49 编辑
回复 3# Five66
感觉可能无解, 或者实现起来太麻烦了, 还有下面这种情况:
'$env:APPDATA\abc.txt'
作者: Five66 时间: 2024-3-30 17:02
是这样子么?
$s = "$HOME"+'\desktop\春天来了.pdf'
$s = "$env:APPDATA"+'\abc.txt'
作者: 小白龙 时间: 2024-3-30 18:26
回复 8# Five66
不是这样的, 就是像我最开头的那种, 全是单引号引起来的
作者: idwma 时间: 2024-3-30 19:25
把字符套起来吗复制代码
作者: aloha20200628 时间: 2024-3-30 19:45
本帖最后由 aloha20200628 于 2024-3-30 19:48 编辑
回复 6# 小白龙 - powershell -c "$s='$HOME\desktop\春天来了.pdf';$p=$ExecutionContext.InvokeCommand.ExpandString($s);echo($p);"
复制代码
- $s='$HOME\desktop\春天来了.pdf'
- $p=$ExecutionContext.InvokeCommand.ExpandString($s)
- echo($p)
复制代码
作者: evilDegg 时间: 2024-3-30 22:07
牛逼!!!!!!!!
作者: Five66 时间: 2024-3-31 15:22
回复 9# 小白龙
这样的话,除非有规律,不然无解(不准确)
例如
'$abcd\123.txt'
你要展开的是$a , 还是$ab , 还是$abc ,又或者是$abcd
让ps自己来的话就直接展开$abcd了 , 这可能不是你想要的 , 自己来的话就可能不通用了(没有规律的话)
作者: 小白龙 时间: 2024-3-31 21:56
回复 13# Five66
大佬真够细心的, 确实有这个情况
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |