gpt4 book ai didi

windows - 如何在批处理文件中使用嵌套的 FOR 循环

转载 作者:可可西里 更新时间:2023-11-01 09:58:59 25 4
gpt4 key购买 nike

我有一些代码,我想在其中使用 FOR 循环来处理一组文件。作为处理文件的一部分,有一个 FOR/F 循环读取它并根据文件名将数据附加到另一个文件。

为了能够设置输出文件名,我设置了延迟变量扩展。

这就是我最初预期的代码应该是这样的:

setlocal enabledelayedexpansion
for %%f in (DataFolder\*.Ext) do (
set POI=%%~f
set POI=!JbPOI:DataFolder\=!
set POI=!JbPOI:.Ext=!
for /f "tokens=1,2,3 delims=," %%a in ("%%~f") do (
set CX=%%a
set CY=%%b
set FN=%%c
echo !FN!,9,!CX!,!CY! >> "DataFolder\!POI!.tmp"
)
)
endlocal

此代码不起作用,因为变量 %%a%%b%%c 从未收到值,%%a 始终与 %%f 具有相同的值。

我已经阅读了一些关于这个问题的文章,但无法从中提取有效的解决方案。

我试过很多东西,到目前为止都没有用......

  • 添加了一个虚拟外部循环以通过 %%j 显式创建变量 %%a
  • 取出内部FOR循环并使其成为子程序
  • 取出内部的FOR循环,并使其成为一个单独的批处理文件

任何人都可以告诉我如何解决这个问题吗?

最佳答案

setlocal enabledelayedexpansion
for %%f in (DataFolder\*.Ext) do (
set POI=%%~f
set POI=!JbPOI:DataFolder\=!
set POI=!JbPOI:.Ext=!
for /f "useback tokens=1,2,3 delims=," %%a in ("%%~f") do (
set CX=%%a
set CY=%%b
set FN=%%c
echo !FN!,9,!CX!,!CY! >> "DataFolder\!POI!.tmp"
)
)
endlocal

我不确定你是否想阅读文件 "%%~f" ,但我认为这是你需要的。

关于windows - 如何在批处理文件中使用嵌套的 FOR 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27090735/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com