【问题标题】:Batch - Forfiles in loop with multiple file types批处理 - 具有多种文件类型的循环中的 Forfile
【发布时间】:2015-02-06 18:36:41
【问题描述】:

我正在尝试制作一个用于转换某些文件类型的批处理文件。所以我不会在代码中放更多无用的循环,我想把它放在一个循环中。

这是我目前的代码:

cd "%inputdir%"
setlocal disableDelayedExpansion
for /f "delims=" %%A in ('forfiles /s /m *.tga /c "cmd /c echo @relpath"') do (
  set "file=%%~A"
  setlocal enableDelayedExpansion
  set filenametmp=%outputdir%!file:~1,-4!.paa

  setlocal enableDelayedExpansion
  For %%A in ("!filenametmp!") do (
    Set foldertmp=%%~dpA
  )

  setlocal enableDelayedExpansion
  IF NOT EXIST "!foldertmp!" (
    mkdir "!foldertmp!"
  )
  endlocal

  cd !Convertfolder!
  Pal2PacE %inputdir%!file:~1! !filenametmp!
)

我使用this answer 将for循环改进为:

for /f "delims=" %%A in ('for %%G in (.tga, .png) do 'forfiles /s /m *%%G /c "cmd /c echo @relpath"'') do (... 

不幸的是,它抛出了这个错误:

System cannot find file for %G in...

有人知道怎么解决吗?

【问题讨论】:

    标签: windows batch-file


    【解决方案1】:

    如果我理解正确,我认为这段代码会做你想做的事。

    for %%G in (.tga, .png) do (
      for /f "delims=" %%A in ('forfiles /s /m *%%G /c "cmd /c echo @relpath"') do (
        REM The ECHO below is just for testing.
        REM Put the code from inside your FOR loop here.
        ECHO %%A
      )
    )
    

    【讨论】:

    • 我无法让编辑器接受我的代码。当我尝试发布某行时,我不断收到错误消息。我正在尝试找出问题所在...请耐心等待。
    • 奇怪...我必须将代码块放在块引号内,否则 "cmd /c echo @relpath" 周围的引号会导致问题,当我尝试发布或更新答案时会出错.
    • 嗯,它几乎可以工作,让我比以前更进一步:D 然而,由于某种原因,它只找到第一个的类型(在这种情况下为 .tga,但当我更改订单时它是 . png),对于另一个它写 ERROR: Files of type "*.png" not found.
    • 当我说它对我有用时,我的意思是ECHO %%A。查看您的代码,最后您有CD !Convertfolder!。那可能是你的问题。您正在 CD 进入另一个文件夹,然后当下一个 forfiles 命令运行时,它正在另一个文件夹中运行,该文件夹不包含它正在寻找的任何类型的文件。
    • 哦,是的!这正是问题所在!非常感谢!
    【解决方案2】:

    我相信,但尚未测试:

    for /f "delims=" %%A in ('for %%G in (.tga, .png) do forfiles /s /m *%%G /c "cmd /c echo @relpath"')做(...

    应该可以工作,而 forfiles 命令周围的引号会混淆问题。

    【讨论】:

    • 好吧,我在发帖之前尝试了各种引号组合,这不是问题:)
    猜你喜欢
    • 1970-01-01
    • 2017-06-25
    • 2013-10-07
    • 2018-09-08
    • 1970-01-01
    • 2022-10-21
    • 1970-01-01
    • 1970-01-01
    • 2019-11-14
    相关资源
    最近更新 更多