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

批处理脚本中日期拼接使用点号失效、转义字符无效问题求助

问题原因

批处理中拼接变量使用点号不需要任何转义,你遇到的报错是以下几个错误共同导致的:

  • 原有代码的时间拼接部分多了一个多余的转义符^,该字符属于文件名非法字符,会导致路径解析失败
  • 你在定义路径变量时将引号写入了变量值,后续拼接时又重复加引号,导致生成的路径格式错误,带点号时解析冲突更明显
  • 代码中存在无效跳转goto eof,你并未定义:eof标签,执行后会直接抛出错误,干扰你判断根因

解决步骤

  1. 调整变量定义规则,不要把引号写入变量值,后续使用时统一包裹引号,避免拼接混乱
  2. 修正TODAY变量的定义,直接使用点号作为分隔符,删掉多余的^字符
  3. 修正rar命令的路径写法,统一用引号包裹完整输出路径
  4. 修正跳转标签错误,避免无效跳转

修正后的完整代码

@echo off
setlocal

REM --------------------- Folder to compress -----------------------------------
set dir=D:\project\my-project\
set name=my-project
set backup=D:\backup\project\
set folder=D:\dev\project\my-project
REM 如果不需要在压缩包里保留外层文件夹,在folder参数的路径末尾加"\"即可
REM ----------------------------------------------------------------------------

REM ---------------------- WinRAR 程序路径 ------------------------------------
set path=C:\Progra~2\WinRAR\WinRAR.Exe;%path%
REM 路径与实际安装位置不符可自行修改
REM ----------------------------------------------------------------------------

REM 切换工作目录到指定路径
cd "%dir%"

REM 小时数小于10时补前导0
SET hr=%time:~0,2%
IF %hr% lss 10 SET hr=0%hr:~1,1%

REM 日期格式:年.月.日_时分秒
Set TODAY=%date:~10,4%.%date:~7,2%.%date:~4,2%_%hr%%time:~3,2%%time:~6,2%%time:~9,2%

echo 待压缩的RAR文件源文件夹:
echo %folder%
echo.
echo.

echo 即将把目录和子目录下所有文件压缩为单个归档文件
echo.
echo.

echo 压缩文件名将自动拼接当前日期时间

rar a -r -ep1 "%backup%\%name%_%today%.rar" "%folder%"

pause
goto end

echo.
echo "任务已完成"
echo.

REM --------------------------- 退出 -----------------------------------------
:end
EXIT /B 0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 08:45:01