嵌套 Batch For Do 循环以使用文件夹名称和文件名
Posted
技术标签:
【中文标题】嵌套 Batch For Do 循环以使用文件夹名称和文件名【英文标题】:Nesting Batch For Do loops to work with folder name and filename 【发布时间】:2021-01-22 04:51:25 【问题描述】:我想在循环中递归执行一个命令,根据树结构中文件的文件夹名称(即日期)在文件上设置元数据标记。 基本上是这样的
FOR /R [folder] %%G in (*.mts) DO Exiftool -DateCreated=[folder name of]%%G %%G
但是,我没有办法提取参数的文件夹名称 - %%~pG
会给我整个路径 - 包括斜杠
因此我想到了这样的嵌套循环:
FOR /d /r %%G IN (.) DO (
FOR %%H IN (*.mts) DO (
echo %%~nG %%~nH
)
)
%%~nG
将报告文件夹名称,但 %%H
不可用 - 输出如下所示:
(FOR %H IN (*.mts) DO (echo 2017-11-12 %~nH ) )
也许第二个 for 循环不知道从哪里开始 - 我该如何告诉它?
【问题讨论】:
for /R [folder] %%G in (*.mts) do for %%H in ("%%~pG.") do echo File: "%%~nxG"; Parent: "%%~nxH"
【参考方案1】:
FOR %%H IN (*.mts) DO (
将在当前目录中查找.mts
文件。
你想查看当前的%%G
目录,所以使用
FOR %%H IN ("%%G\*.mts") DO (
【讨论】:
谢谢! - 正是我需要的。以上是关于嵌套 Batch For Do 循环以使用文件夹名称和文件名的主要内容,如果未能解决你的问题,请参考以下文章