标题: [问题求助] 用PowerShell可以将命令转换为一串数值,能不能倒过来,将这串数值还原成命令?谢谢! [打印本页]
作者: Shuye 时间: 2023-3-16 13:10 标题: 用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 ?
谢谢!
作者: xczxczxcz 时间: 2023-3-16 13:48
$d = 你的数值; WIN10以上- -join([Linq.Enumerable]::Where($d.Split(','),[Func[object,bool]]{param($i);$i-ne'00'}).Foreach{[char][convert]::ToByte($_,16)})
复制代码
作者: Shuye 时间: 2023-3-16 14:33
回复 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
作者: xczxczxcz 时间: 2023-3-16 14:38
用PS的能把赋值也搞错? 建议去学基础再发吧!- $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'
复制代码
作者: xczxczxcz 时间: 2023-3-16 14:42
- -join($d.Split(',').Where{$_-ne'00'}.Foreach{[char][convert]::ToByte($_,16)})
复制代码
作者: Shuye 时间: 2023-3-16 14:59
回复 4# xczxczxcz
xczxczxcz 兄见笑了,刚接触PS。
测试通过,谢谢!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |