找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 21084|回复: 13

[问题求助] PowerShell怎样把字面字符串中的变量展开?

[复制链接]
发表于 2024-3-30 13:01:06 | 显示全部楼层 |阅读模式
下面$HOME是字面量文本, 怎样展开它呢? 下面代码无效
  1. $s = '$HOME\desktop\春天来了.pdf'
  2. Resolve-Path  $s
复制代码
发表于 2024-3-30 15:07:05 | 显示全部楼层
回复 1# 小白龙


    把单引号改成双引号试试
发表于 2024-3-30 16:29:06 | 显示全部楼层
英文单引号
换成
英文双引号

用$()界定变量(表达式)

用{}界定变量名
 楼主| 发表于 2024-3-30 16:35:00 | 显示全部楼层
回复 3# Five66


    感谢楼上两位指导,
可能我描述的有问题, 我需要展开的就是字面量, 它是读取某个文件中的值, 不能手动加"
发表于 2024-3-30 16:38:19 | 显示全部楼层
回复 4# 小白龙


    请发完成代码
 楼主| 发表于 2024-3-30 16:46:23 | 显示全部楼层
回复 5# Batcher


    完成代码就是解析字符串里面的变量实际值, 再加上其后面的文本, 例如我的电脑上展开应该是

C:\Users\Administrator\Desktop\春天来了.pdf
 楼主| 发表于 2024-3-30 16:47:27 | 显示全部楼层
本帖最后由 小白龙 于 2024-3-30 16:49 编辑

回复 3# Five66


    感觉可能无解, 或者实现起来太麻烦了, 还有下面这种情况:

'$env:APPDATA\abc.txt'
发表于 2024-3-30 17:02:51 | 显示全部楼层
是这样子么?

$s = "$HOME"+'\desktop\春天来了.pdf'

$s = "$env:APPDATA"+'\abc.txt'
 楼主| 发表于 2024-3-30 18:26:56 | 显示全部楼层
回复 8# Five66


    不是这样的, 就是像我最开头的那种, 全是单引号引起来的
发表于 2024-3-30 19:25:38 | 显示全部楼层
把字符套起来吗
  1. '$s="' + $s + '"' | iex
复制代码
发表于 2024-3-30 19:45:19 | 显示全部楼层
本帖最后由 aloha20200628 于 2024-3-30 19:48 编辑

回复 6# 小白龙

  1. powershell -c "$s='$HOME\desktop\春天来了.pdf';$p=$ExecutionContext.InvokeCommand.ExpandString($s);echo($p);"
复制代码

  1. $s='$HOME\desktop\春天来了.pdf'
  2. $p=$ExecutionContext.InvokeCommand.ExpandString($s)
  3. echo($p)
复制代码

评分

参与人数 1技术 +1 收起 理由
小白龙 + 1 乐于助人

查看全部评分

发表于 2024-3-30 22:07:48 | 显示全部楼层
牛逼!!!!!!!!
发表于 2024-3-31 15:22:14 | 显示全部楼层
回复 9# 小白龙


    这样的话,除非有规律,不然无解(不准确)
例如
'$abcd\123.txt'
你要展开的是$a , 还是$ab , 还是$abc ,又或者是$abcd
让ps自己来的话就直接展开$abcd了 , 这可能不是你想要的 , 自己来的话就可能不通用了(没有规律的话)
 楼主| 发表于 2024-3-31 21:56:03 | 显示全部楼层
回复 13# Five66


    大佬真够细心的, 确实有这个情况
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 03:11 , Processed in 0.020710 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表