【问题标题】:Nested Loop in .bat file.bat 文件中的嵌套循环
【发布时间】:2015-08-27 19:14:34
【问题描述】:

我正在尝试编写一个批处理文件来重新组织一系列文件夹中的文件。当前布局是几个文件夹,其数字名称从“-12.60”到“-7.60”。在每个文件夹中,都有一系列图像,编号从“00000.tiff”到“0006.tiff”

我运行以下代码,但似乎遇到了错误并且找不到解决方案。任何帮助将不胜感激

for /L %%di IN (1,1,7) DO (
mkdir C:\Users\manu\Documents\ReOrdered_stacks\t%%di
for /L %%cm IN (7,1,12) DO (
  for /L %%mm IN (20,20,80) DO(
     rename "C:\Users\manu\Desktop\2015.07.24 11-57_r\Stack\Phase\%%cm.%%mm\0000%%di.tiff" %%cm.%%mm.tiff
     copy "C:\Users\manu\Desktop\2015.07.24 11-57_r\Stack\Phase\%%cm.%%mm\%%cm.%%mm.tiff" C:\Users\manu\Documents\ReOrdered_stacks\t%%di\
  )
 )
)

【问题讨论】:

  • 一个错误?哪个错误?哪条线路受到影响?
  • 问题是我是批处理文件的新手。我假设有一个错误,但 cmd 窗口在读取任何内容之前关闭。在这一点上我能弄清楚的是循环不起作用,因为没有文件被复制。
  • 然后启动命令提示符并从那里运行批处理文件。

标签: batch-file for-loop nested-loops


【解决方案1】:
  1. 循环变量只能有一个字符
  2. 括号前必须有空格:do (
  3. 从命令提示符控制台内运行批处理文件以查看语法错误

for /L %%d IN (1,1,7) DO (
    mkdir C:\Users\manu\Documents\ReOrdered_stacks\t%%d
    for /L %%c IN (7,1,12) DO (
        for /L %%m IN (20,20,80) DO (
            rename "C:\Users\manu\Desktop\2015.07.24 11-57_r\Stack\Phase\%%c.%%m\0000%%d.tiff" %%c.%%m.tiff
            copy "C:\Users\manu\Desktop\2015.07.24 11-57_r\Stack\Phase\%%c.%%m\%%c.%%m.tiff" C:\Users\manu\Documents\ReOrdered_stacks\t%%d\
        )
    )
)

有关语法的更多信息,请参阅SS64.com

【讨论】:

  • 谢谢!在这方面我仍然是一个小人物,所以你们是一个巨大的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-15
  • 1970-01-01
相关资源
最近更新 更多