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

[问题求助] PowerShell格式化数字补0

[复制链接]
发表于 2022-9-30 08:21:12 | 显示全部楼层 |阅读模式
本帖最后由 5i365 于 2022-9-30 09:37 编辑

下面的代码, 我想让输出的结果中的数字问部分总是保留两位小数,即:不足两位的数字时前面加0,
期待输出后的效果:

01 A
02 b
09 e
10 f
16 g
  1. $dd = @"
  2. Chapter 1. A
  3. Chapter 2. b
  4. Chapter 9. e
  5. Chapter 10. f
  6. Chapter 16. g
  7. "@

  8. $dd -split '\n' |
  9. %{
  10.         if ($_ -match '.+\s+(\d{1,2})\.\s+(.+)')
  11.         {
  12.                 '{0} {1}' -f $matches[1], $matches[2]
  13.         }
  14. }
复制代码
 楼主| 发表于 2022-9-30 08:27:53 | 显示全部楼层
本帖最后由 5i365 于 2022-9-30 09:36 编辑

已经解决:

  1. $dd = @"
  2. Chapter 1. A
  3. Chapter 2. b
  4. Chapter 9. e
  5. Chapter 10. f
  6. Chapter 16. g
  7. "@

  8. $dd -split '\n' |
  9. %{
  10.         if ($_ -match '.+\s+(\d{1,2})\.\s+(.+)')
  11.         {
  12.                 $n = '{0:d2}' -f [int]$matches[1]
  13.                 '{0} {1}' -f $n, $matches[2]
  14.         }
  15. }


复制代码

或者:

  1. $dd = @"
  2. Chapter 1. A
  3. Chapter 2. b
  4. Chapter 9. e
  5. Chapter 10. f
  6. Chapter 16. g
  7. "@

  8. $dd -split '\n' |
  9. %{
  10.         if ($_ -match '.+\s+(\d{1,2})\.\s+(.+)')
  11.         {
  12.                 '{0} {1}' -f $matches[1].padleft(2, '0'), $matches[2]
  13.         }
  14. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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