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

批处理脚本中如何从文件路径提取指定子串以设置任务计划名称?

解决批处理脚本提取任务计划程序名称子串的问题

要从完整路径中提取Microsoft\之后的子串作为任务名称,可以通过字符串替换结合延迟变量扩展来实现,修改后的脚本如下:

@echo on
setlocal enabledelayedexpansion

:: 定义需要移除的前缀路径
set "prefix=C:\Windows\System32\Tasks\Microsoft\"

for %%e in ("%~dp0*.xml") do (
    :: 获取不带扩展名的完整文件路径
    set "full_path=%%~dpne"
    :: 移除前缀,得到目标任务名称
    set "task_name=!full_path:%prefix%=!"
    :: 导入任务计划
    schtasks /create /tn "!task_name!" /ru "System" /xml "%%~e"
)

pause
endlocal

关键步骤说明:

  • setlocal enabledelayedexpansion:启用延迟变量扩展,允许在for循环内部修改并即时读取变量值(使用!变量名!替代%变量名%)。
  • set "prefix=...":指定需要从完整路径中移除的固定前缀,确保替换后得到你需要的Pent\Projects\DF\TASK_DAILY部分。
  • set "task_name=!full_path:%prefix%=!":通过字符串替换,把full_path中匹配prefix的部分替换为空,从而提取目标子串。

如果你的前缀路径有变动(比如Microsoft目录位置不同),只需要修改prefix变量的值即可适配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 01:17:47