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

[文本处理] 【已解决】批处理将主板名称重命名计算机名称

[复制链接]
发表于 2025-7-31 10:09:09 | 显示全部楼层
批处理的特殊字符恶心死了
变量替换功能的*号是通配符 ,无法作为普通字符; =号是界定符 ,但是无法界定自身并作为普通字符; 而~号在这之前就被解释成变量截取功能了...
变量长度不长 ,最好还是逐字符截取并判断处理

  1. @echo off

  2. set z=!A B^"C,D.E/F:G?H\I^|J^<K^>L*M-N

  3. set replace=set "s=!s!_"^&set "x="
  4. setlocal enabledelayedexpansion
  5. for /l %%l in (0,1,32) do (
  6. set x=!z:~%%l,1!
  7. if "!x!" == "~" %replace%
  8. if "!x!" == "`" %replace%
  9. if "!x!" == "^!" %replace%
  10. if "!x!" == "%%" %replace%
  11. if "!x!" == "^" %replace%
  12. if "!x!" == "&" %replace%
  13. if "!x!" == "*" %replace%
  14. if "!x!" == "<" %replace%
  15. if "!x!" == ">" %replace%
  16. if "!x!" == "?" %replace%
  17. if "!x!" == ":" %replace%
  18. if "!x!" == "|" %replace%
  19. if "!x!" == ^"^"^" %replace%
  20. if "!x!" == "" %replace%
  21. if "!x!" == "/" %replace%
  22. if "!x!" == "," %replace%
  23. if "!x!" == " " %replace%
  24. if "!x!" neq "" set "s=!s!!x!"
  25. )

  26. echo,!z! [before]
  27. echo,!s! [after]
  28. endlocal&pause&exit /b 0
复制代码

评分

参与人数 1技术 +1 收起 理由
chishingchan + 1 没有最好,只有更好!学习了。。。

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 04:44 , Processed in 0.009740 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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