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

[问题求助] 用PowerShell可以将命令转换为一串数值,能不能倒过来,将这串数值还原成命令?谢谢!


比如,在PowerShell控制台窗口输入命令:
PS C:\> ([char[]]'%SystemRoot%\System32\Cmd.exe /k '|%{([int]$_).ToString('X')+',00'}) -join ','

可以得到一串数值:
25,00,53,00,79,00,73,00,74,00,65,00,6D,00,52,00,6F,00,6F,00,74,00,25,00,5C,00,53,00,79,00,73,\
00,74,00,65,00,6D,00,33,00,32,00,5C,00,43,00,6D,00,64,00,2E,00,65,00,78,00,65,00,20,00,2F,00,\
6B,00,20,00

想倒过来,用什么方法才能将这串数值还原成原来的命令:%SystemRoot%\System32\Cmd.exe /k ?
谢谢!

$d = 你的数值; WIN10以上
  1. -join([Linq.Enumerable]::Where($d.Split(','),[Func[object,bool]]{param($i);$i-ne'00'}).Foreach{[char][convert]::ToByte($_,16)})
复制代码
QQ: 己阵亡
脚本优先 [PowerShell win10]

TOP

回复 2# xczxczxcz

谢谢 xczxczxcz 兄!不过,赋值时报错:

PS C:\> $d=25,00,53,00,79,00,73,00,74,00,65,00,6D,00,52,00,6F,00,6F,00,74,00,25,00......
所在位置 行:1 字符: 52
+ $d=25,00,53,00,79,00,73,00,74,00,65,00,6D,00,52,00,6F,00,6F,00,74,00, ...
+                                                    ~
“,”后面缺少表达式。
所在位置 行:1 字符: 52
+ $d=25,00,53,00,79,00,73,00,74,00,65,00,6D,00,52,00,6F,00,6F,00,74,00, ...
+                                                    ~~
表达式或语句中包含意外的标记“6F”。
所在位置 行:1 字符: 54
+ $d=25,00,53,00,79,00,73,00,74,00,65,00,6D,00,52,00,6F,00,6F,00,74,00, ...
+                                                      ~
参数列表中缺少参量。
    + CategoryInfo          : ParserError: ( [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : MissingExpressionAfterToken

TOP

用PS的能把赋值也搞错? 建议去学基础再发吧!
  1. $d='25,00,53,00,79,00,73,00,74,00,65,00,6D,00,52,00,6F,00,6F,00,74,00,25,00,5C,00,53,00,79,00,73,00,74,00,65,00,6D,00,33,00,32,00,5C,00,43,00,6D,00,64,00,2E,00,65,00,78,00,65,00,20,00,2F,00,6B,00,20,00'
复制代码
QQ: 己阵亡
脚本优先 [PowerShell win10]

TOP

  1. -join($d.Split(',').Where{$_-ne'00'}.Foreach{[char][convert]::ToByte($_,16)})
复制代码
1

评分人数

    • Shuye: 成功还原。技术 + 1
QQ: 己阵亡
脚本优先 [PowerShell win10]

TOP

回复 4# xczxczxcz

xczxczxcz 兄见笑了,刚接触PS。

测试通过,谢谢!

TOP

返回列表