[原创]使用PowerShell替换字符串中某个字符为特定数值

Windows命令执行字符绕过:CMD与PowerShell解析差异与防御实践 命令执行是系统管理与安全渗透中的基础操作,涉及将用户输入解析为可执行指令的过程。其核心原理在于命令解释器对特殊字符(如分隔符、转义符)的识别与处理机制,这直接影响了系统安全性与脚本健壮性。从技术价值看,深入理解解析规则有助于构建更安全的应用程序,特别是在需要拼接用户输入的场景中,能有效防范命令注入漏洞。在应用场景上,无论是编写自动化部署脚本,还是进行安全审计与渗透测试,掌握字符绕过的底层逻辑都至关重要。本文聚焦于Windows环境下CMD与PowerShell两大解释器的解析差异,详细剖析了转义字符、变量扩 阅读详情
作者: Edengundam(马涛)
本文源于下面链接的讨论:
 
该讨论中希望能够实现:
 

替换的规则:

A----->01

B----->02

... ...

Z----->26

例如:字符串"AC159"替换成"0103159"

大家在讨论中已经看到很多人给了各种各样的方法来求解, 最直观的办法应该是写26条替换规则. 那么我给出PowerShell的解法, 其实很简单:

PS C:/> $a = "AC134","DE432","SX889"
PS C:/> $a
AC134
DE432
SX889
PS C:/> $a | %{ $_.GetEnumerator() | %{$b = ""} { if( $_ -cmatch '^[A-Z]$' ) { $b += "{0,2:00}" -f ([int]$_ - [char]'A')} else { $b += $_ } } {$b} }
0002134
0304432
1823889

这里我使用了几个技巧:

1. 字符串默认被当作一个整体进行迭代, 这是一个需要特别注意的特性, 但是我们可以通过在字符串对象上调用GetEnumerator方法显示返回一个迭代器, 这样我们就能对字符串中的字符进行迭代了;

2. 我使用了Foreach-Object的完整形式BEGIN, PROCESS, END;

3. 我嵌套使用Foreach-Object, 最外层是对$a中的每一个字符串, 内层的完成对一个字符串的字符进行迭代;

4. 使用了类型转换, 运算符的选择;

5. -f是字符串格式的关键字, 如何使用可以参考MSDN关于System.String类上Format静态方法的说明, 该静态方法对localization支持非常好.  

3、PowerShell基础:对象、字符串操作、数值类型及集合的全面解析 本文全面解析了PowerShell中的核心概念,包括对象处理、字符串操作、数值类型、数组及字典的使用。详细介绍了字符串插值与运算符、数值类型及其格式化方法、数组的创建与操作、字典的键值管理等内容,并通过流程图和示例总结了操作步骤及注意事项。掌握这些内容能够显著提升PowerShell脚本开发的效率与灵活性。 阅读详情

相关推荐

【PowerShell专栏】PowerShell的字符型数据

PowerShell中字符串支持"+"连接运算和""重复运算(字符串整数)。常用字符串操作符包括Equals、Indexof、Insert、Replace、Split、Substring等,可通过Get-Member查看。字符串乘法需注意操作数顺序,仅支持字符串与整数的乘法运算。字符串不支持减法和除法运算。

技术与管理的平衡木- 158

shell 字符串和数字互相转换

一、数字转字符串 直接加引号即可,例如 var=1 var1="$var" 这样就转化了 二、字符串转数字,三种方法 1,用${{a}} 2,用let达到(()) 运算效果。 let num=0123; echo $num; 83 3,双括号运算符: a=$(( 1 + 2 )); echo $a; 等同于: a=`expr 1 + 2` ...

小白_努力 4万+

PowerShell中使用正则表达式匹配字符串实例

主要介绍了PowerShell中使用正则表达式匹配字符串实例,主要介绍match操作符的使用,需要的朋友可以参考下

shell中将字符串转换成数字

我有一个字符串“96.56”,怎样才能将它转换成一个小数,或者是一个整数96也行。 shell中无需转换,可以直接用作数字。转换成整数:# echo "96.56"| awk '{print int($0)}'96追问那如果我要将“.21”(这是从文件中读出来的,表示0.21)拿来与1比较大小,写在if判断中,我该怎么做?追答shell中的test语句只能用于整数判断,要判断小数用awk吧,awk...

hellojoy的博客 15万+

Aloudata Agent :基于 NoETL 明细语义层的分析决策智能体

这是包括我们在内的一些厂商探索的一个新方向,这种方式先由大模型将自然语言转化为对指标语义层的查询请求(MQL,Metrics Query Language),再由指标平台将指标和维度的查询与计算逻辑转化为准确的 SQL 查询语句。用户查询经大模型语义解析后,将其转换为指标、维度及筛选条件的组合表达,并生成面向指标平台的 MQL,Aloudata CAN 指标平台的语义引擎将 MQL 转换为准确和可执行的查询 SQL,语义引擎内置函数体系与 SQL 解析器,确保语义转换的 100% 准确性。

Aloudata的博客 1664

【鼠标在不点击的情况下,直接移动到QT控件上不显示提示信息】

有时明明已经调用了setToolTips方法,鼠标移动到QT控件上仍然不会有提示信息,这时候就需要具体分析下。重点就是标红的这段话,大概意思就是。.h文件中加入鼠标移动事件的定义。.cpp文件中实现该事件。

ZTH_G的博客 2425

shell 字符串 转换为 数字

在Shell脚本中,可以使用内置的算术表达式来将字符串转换为数字。使用$((expression))或者let命令可以进行算术运算并确保字符串被当作数字处理。如果字符串不是一个合法的数字,这些方法会导致错误。这段代码会检查str是否为数字,如果是,则计算其平方,如果不是,则输出错误信息。shell 字符串 转换为 数字。shell 字符串 转换为 数字。

abc 949

硬件单板类机考复习提纲

6、 功率晶体管低导通损耗时处于的状态(饱和状态、放大状态、截止状态)(放大器的采样频率特性)总结:元器件特性(电阻、电容、二极管、三极管、晶体、晶振、MOS、磁珠等)信号质量问题产生根因(单调性、边沿过缓、毛刺、回沟、抖动等)3、 几种电容容量范围大小(超级电容、钽电容、陶瓷电容、铝电容)66、背板连接器接触设计的接触顺序(先导向、再地针、最后信号针)28、逻辑电平接口的特性(CMOS、TTL、ECL、PECL)76、差分电平(lvpecl、RS-422/485、cml)

2303_79562407的博客 1万+

PowerShell神奇的类型转换

PowerShell能够非常方便地将字符串等基本类型转换成期望的类型。之所以神奇,是因为PowerShell本身做了很多辛苦的工作,按照优先级: 直接赋值:输入类型和期望类型一致,可以直接交付。 基于语言的类型转换:当目标类型为void,Boolean,String, Array, Hashtable, PSReference (i.e.: [ref]),XmlDocument, Dele...

weixin_30699955的博客 991

Linux8.3上装Oracle 19c RAC,ssh互信总报INS-06006?别急着下补丁,试试这个临时替换scp的骚操作

本文针对在Linux 8.3上安装Oracle 19c RAC时遇到的SSH互信报错INS-06006问题,提供了一个无需官方补丁的临时解决方案。通过创建SCP包装脚本并添加-T参数,有效解决了OpenSSH 8.x版本与Oracle安装程序的兼容性问题,帮助用户顺利完成安装流程。

weixin_30764883的博客 403

【Ensp】FTP服务器设置和FTP解析

大部分的多媒体多媒体应用协议,如SIP,FTP,NetMeeting协议等,使用约定的固定端口来初始化一个控制连接,再动态地选择端口用于数据传输,并且这些端口选择是不可预测的。在防火墙设置时,可以通过ASPF(应用层报文过滤)中的Server Map表来满足多通道协议的正常工作,它正常检测应用层报文信息,并动态地根据报文内容创建和删除临时的Server Map表项,以允许其它非约定端口通过防火墙。(5)我们可以在路由器或能访问ftp服务器的设备上,通过cli命令行的方式来访问ftp服务器。

进击的小小白 1863

PowerShell正则替换+批量修改文件名

使用PowerShell的正则表达式替换批量修改文件名。

zorchp 4822

FPGA实现Gardner环定时同步:Verilog代码与Testbench实战解析

本文深入解析了在FPGA上实现Gardner环定时同步的完整过程,详细阐述了其非数据辅助的定时误差检测原理。通过Verilog代码实战,展示了内插滤波器、定时误差检测器、环路滤波器和数控振荡器等核心模块的设计,并提供了完整的Testbench验证方法,帮助开发者解决数字通信系统中的时钟同步难题。

gpt4scribbler的博客 578

PowerShell字符串

Powershell中提供了字符串格式化方法,其经典用法是调用[String]::Format函数,来将字符串中的花括号替代为某个变量。括在双引号中的字符串是可扩展字符串,可直接对美元符号后面的变量进行字符串转化;字符串就是字符组成的数组,在Powershell中,可通过单引号或双引号来定义字符串。split提供两种调用方式,既可通过内置方法的形式,也可以通过指令参数的形式。除了这两种字符串之外,还有一种通过@进行引用的字符串,可用于引用多行文本,示例如下。当作需要格式化的数值,而将后面的。

微小冷的学习笔记 2408

《C/C++等级考试(1~8级)历届真题解析》专栏总目录

中国电子学会《全国青少年软件编程等级考试》C/C++编程(1~8级)历届真题解析。订阅后可阅读专栏内所有真题解析,真题持续更新中!

人生就是一个不断学习的过程 2万+

ZYNQ系列PS侧和PL侧DDR3或DDR4在AD(Altium Designer 25)中的layout布线规则约束

DDR3或DDR4的PCB布线规则通常有相对固定的要求,对应的,在PCB设计时有固定的约束设置。

FPGA艺术家的博客 790

字符串查找与替换:从原理到实战的性能优化与避坑指南

字符串是编程中处理文本数据的核心数据结构,其不可变特性是理解相关操作的基础。在原理层面,查找操作通常涉及线性扫描、正则表达式匹配或KMP等高效算法,而替换操作则因字符串的不可变性,可能引发大量内存分配和性能损耗。从技术价值看,高效的字符串处理能显著提升数据清洗、模板渲染、日志解析等场景的性能。在应用实践中,开发者常面临编码问题、特殊字符处理以及跨文件批量替换等挑战。针对这些需求,合理使用StringBuilder、预编译正则表达式以及IDE的全局替换功能,并结合stringbuffer转换为string、p

weixin_34378767的博客 429

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

PowerShell 的数据处理

这些数据类型可以用于不同的场景,例如字符串可以用于文本处理,数字可以用于数学计算,数组可以用于存储多个元素,哈希表可以用于存储键值对,对象可以用于封装复杂的数据和逻辑。在本文中,我们将介绍 PowerShell 中的数据转换和格式化功能,包括类型转换、字符串格式化、日期时间格式化等等。在本文中,我们介绍了 PowerShell 中的数据转换和格式化功能,包括类型转换、字符串格式化、日期时间格式化等等。在 PowerShell 中,哈希表可以包含任何类型的键和值,包括字符串、数字、对象等等。

Kali与编程 955

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Powershell 设置数值格式 1

设置数值格式 1 6 6月, 2013  在 Powershell  tagged 字符串 / 数字 / 文本 / 日期 / 格式化 by Mooser Lee 格式化操作符 -f 可以将数值插入到字符串,每一个通配符都有统一的结构。 {index[,alignment][:format]}:  Index: 索引编号用来识别把那个值用来替换通配符。例如你可能使...

weixin_33717117的博客 439

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

powershell 基础知识与应用

什么是powershell Windows Powershell

tryheart的博客 1206

格式化数字字符串

标准数字格式字符串: C or c  货币     "{0:C}" -f 1.23   结果:¥1.23 或 $1.23 D or d 十进制  "{0:d3}" -f 2       结果:002 (在前面补0,补足3位) E or e 科学计数法 "{0:E3}" -f [Math]::Pi 结果:3.142E+000 F or f 固定的点。精确说明小数点后的位数 "{0:F3}" ...

weixin_33693070的博客 239

解密AES的CBC与CTR模式:从原理到Python实战

分组密码是现代对称加密的基石,AES作为最常用的分组密码算法,本身只负责固定长度数据块的加密变换。实际应用中,我们需要借助CBC(密码分组链接)和CTR(计数器)等工作模式,来处理任意长度的明文并增强安全性。CBC通过前一块密文与当前明文的异或实现块间关联,而CTR则利用Nonce与计数器生成密钥流,实现流式加密并天然支持并行计算。理解两者的区别、Padding处理规则以及IV/Nonce的随机性要求,是正确解密密文的关键。在Python中,借助pycryptodome等库可以快速实现,但编码转换、计数器初

weixin_33805992的博客 338

PowerShell输出结果的处理

默认情况下Powershell大量的输出结果是包括数字的字符串,但是有些时候我们想将其输出结果变为纯数字,以便将结果输出到其它地方(比如输出到ZABBIX可实现一些图表的绘制)。 举例说明: 1 默认情况下查看Exchange 某个数据库的大小 [PS] C:\MailBoxOperate\Function>Get-MailboxDatabase ...

weixin_34250709的博客 1888

PowerShell 第18章:变量,把数据装进“盒子”的正确方式

本文介绍了PowerShell中变量的核心概念与使用技巧。主要内容包括:变量的本质是命名内存空间,可存储字符串、数字等对象;创建与读取变量、命名规范;单双引号的区别及转义符使用;数组与集合的操作方法;强类型变量的优势及常见类型;相关最佳实践与易错点提示。还提供了练习题和常用代码片段,帮助读者掌握变量在脚本中的实际应用。

分享 Windows 系统部署、镜像封装、终端管理、故障排查与运维自动化实践,涵盖 Sysinternals、PowerShell 和 AI 工具应用。记录真实问题、探索过程与解决方法,也分享 AI 时代的学习心得和实践经验,让技术更易理解 2万+

Python vs PowerShell:自动化 C++ 配置文件的两种实现方案

场景推荐方案理由跨平台项目Python通用性强Windows 专属PowerShell无需安装复杂数据处理Python库更丰富系统管理任务PowerShell系统集成好团队协作Python学习成本低工具没有绝对的好坏,只有适合与否。选择最适合你项目和团队的方案,才是最佳实践。🚀。

weixin_46716100的博客 818
上一篇: [原创]使用PowerShell中的Sort-Object来完成排序
下一篇: Native Windows Command未翻译原因
PowerShell
博客等级 码龄19年 103粉丝 110原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值