You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

批处理文件字符串批量替换优化及遗留问题解决咨询

批处理脚本优化:项目文件夹名称格式化需求

背景

我是小型公司的CAD经理,日常要给新项目创建带客户专属资源的项目文件夹,这个过程繁琐还得处理多位置的文件和文件夹。我写了个依赖robocopy的批处理文件,通过输入项目信息自动生成一套标准的文件结构。现在需要优化里面的字符串处理部分,让写法更规范,同时修复现有替换逻辑的缺陷。

原始代码(存在问题的版本)

@echo off
echo Enter a brief Project description:
set /p projdesc=
echo.
REM # replace characters in description
set descname="%projdesc%"
set descname=%descname:the =%
set descname=%descname:to =_%
set descname=%descname: over =_%
set descname=%descname: at =_%
set descname=%descname: =%
set descname=%descname:&=-%
set descname=%descname:.=%
set descname=%descname:"=%
echo %descname%
pause

输入输出示例

  • 输入:Rt.71 Bridge over Shark River → 输出:Rt71Bridge_SharkRiver
  • 输入:Bridges & Tunnels → 原本会报错只输出Bridges,给set命令加引号修复后,输出Bridges-Tunnels

注:我保留了projdesc和descname两个变量,因为原始描述要在批处理其他地方用,修改后的字符串用来做文件夹名称的一部分。

现有问题

  • 文本替换有缺陷:比如无法处理以the或to结尾的情况,比如输入Final Project the,替换the (带空格)不会生效,结果会变成FinalProjectthe,而不是预期的FinalProject
  • 代码写法可以更简洁、规范

更新后的代码(已修复&符号问题)

@echo off
echo Enter a brief Project description:
set /p projdesc=
echo.
REM # replace characters in description
set "descname=%projdesc%"
set "descname=%descname:the =%"
set "descname=%descname:to =_%"
set "descname=%descname: over =_%"
set "descname=%descname: at =_%"
set "descname=%descname: =%"
set "descname=%descname:&=-%"
set "descname=%descname:.=%"
echo %descname%
pause

优化需求

希望能得到更高效的实现方式,同时解决现有替换逻辑的缺陷(比如处理the/to在字符串结尾的场景)

内容的提问来源于stack exchange,提问作者AndCAD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 02:15:26