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

如何在批处理文件中将新建的日期命名文件夹设为复制目标?

批处理脚本修正方案

你遇到的核心问题是:%%g、%%e、%%f是for循环的局部变量,只能在DO后的代码块内生效,循环外调用这些变量无法获取正确的日期值,导致复制命令找不到目标路径。

下面提供两种可行的修正方案:

方案一:在循环内完成创建与复制操作

直接将文件夹创建和文件复制的逻辑放到for循环的代码块中,确保能正常使用日期变量:

@echo off
:: 直接切换到目标目录(/d参数同时切换盘符和路径)
cd /d "D:\My Projects\Test"
:: 提取日期并执行创建、复制操作
For /f "tokens=1-4 delims=/ " %%d in ("%date%") DO (
    MD "NPP file backup %%g%%e%%f"
    COPY "C:\Users\{Username}\AppData\Roaming\NPP\Shortcuts.xml" "NPP file backup %%g%%e%%f\"
)
:END

方案二:先保存日期变量,再后续调用

先把提取到的日期值存为全局变量,再用这个变量拼接目标路径,结构更清晰:

@echo off
:: 提取日期并保存为变量
For /f "tokens=1-4 delims=/ " %%d in ("%date%") DO set "backupDate=%%g%%e%%f"
:: 定义目标文件夹完整路径
set "targetDir=D:\My Projects\Test\NPP file backup %backupDate%"
:: 创建文件夹
MD "%targetDir%"
:: 复制文件到目标文件夹(末尾加\确保识别为文件夹)
COPY "C:\Users\{Username}\AppData\Roaming\NPP\Shortcuts.xml" "%targetDir%\"

注意事项

  • 请将代码中的{Username}替换为你自己的Windows用户名(比如C:\Users\John\AppData\Roaming\NPP\Shortcuts.xml)
  • 复制路径末尾的\可以确保系统将目标识别为文件夹,避免出现“是否覆盖文件”的提示(如果存在同名文件)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 17:22:13