[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

下面$HOME是字面量文本, 怎样展开它呢? 下面代码无效
  1. $s = '$HOME\desktop\春天来了.pdf'
  2. Resolve-Path  $s
复制代码

回复 1# 小白龙


    把单引号改成双引号试试
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

英文单引号
换成
英文双引号

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

用{}界定变量名

TOP

回复 3# Five66


    感谢楼上两位指导,
可能我描述的有问题, 我需要展开的就是字面量, 它是读取某个文件中的值, 不能手动加"

TOP

回复 4# 小白龙


    请发完成代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 5# Batcher


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

C:\Users\Administrator\Desktop\春天来了.pdf

TOP

本帖最后由 小白龙 于 2024-3-30 16:49 编辑

回复 3# Five66


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

'$env:APPDATA\abc.txt'

TOP

是这样子么?

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

$s = "$env:APPDATA"+'\abc.txt'

TOP

回复 8# Five66


    不是这样的, 就是像我最开头的那种, 全是单引号引起来的

TOP

把字符套起来吗
  1. '$s="' + $s + '"' | iex
复制代码

TOP

本帖最后由 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

评分人数

TOP

牛逼!!!!!!!!

TOP

回复 9# 小白龙


    这样的话,除非有规律,不然无解(不准确)
例如
'$abcd\123.txt'
你要展开的是$a , 还是$ab , 还是$abc ,又或者是$abcd
让ps自己来的话就直接展开$abcd了 , 这可能不是你想要的 , 自己来的话就可能不通用了(没有规律的话)

TOP

回复 13# Five66


    大佬真够细心的, 确实有这个情况

TOP

返回列表