Windows 在批处理脚本中解析和更新变量时出现问题,FOR循环内外
我正在尝试构建Windows批处理文件,该文件应执行以下操作:Windows 在批处理脚本中解析和更新变量时出现问题,FOR循环内外,windows,for-loop,batch-file,Windows,For Loop,Batch File,我正在尝试构建Windows批处理文件,该文件应执行以下操作: 以参考图像为例(它应该是第一个图像,考虑到计数ima_0001.png,ima_0002.png…) 在第二步中,结构的获取序列中的图像(例如:ima_0001.png,imag_002.png,…),调用函数比较另一批处理文件中的图像,并用当前图像更新参考图像%defa% 除了两个主要步骤外,脚本的性能几乎良好: 我无法使用set“defa=ima_0001.png”直接设置引用或第一个文件,我尝试了不同的方法:defa=im
- 以参考图像为例(它应该是第一个图像,考虑到计数
,ima_0001.png
…)ima_0002.png
- 在第二步中,结构的
获取序列中的图像(例如:
,ima_0001.png
,…),调用函数比较另一批处理文件中的图像,并用当前图像更新参考图像imag_002.png
%defa%
set“defa=ima_0001.png”
直接设置引用或第一个文件,我尝试了不同的方法:
defa=ima_0001.png
,defa=!ima_0001.png所以最后我决定把留给
结构,选择一个与第一个编号不一致的结构(需要ima_0064.png
而不是ima_0001.png
)
我感谢能帮助我手动或自动设置第一个的人
不会使用
行设置“defa=%%h”
例如,在的第一个循环之后,defa
应该从ima_0001.png
更改为ima_0002.png
,或者从ima_0064.png
更改为ima_0065.png
。但是,当控制台运行时,%%h
会发生变化,但defa
始终显示第一个图像(ima_0064.png
)。我也尝试了不同的方法,但都没有成功,设置setlocal
或不设置它。
我感谢有人能给我一些想法来解决他的问题
@echo off
setlocal enabledelayedexpansion
cd C:\Users\docs
set/a "th=870"
REM Set the first file or take one with FOR
::set "defa=ima_0001.png"
FOR %%m in (1,1,*.png) do set "defa=%%m"
REM BUCLE DE LLAMADA A LA FUNCIÓN Callme
FOR %%h in (*.png) DO (
Callme "%defa%" "%%h" %th%
set "defa=%%h"
)
pause
FOR%%m in(1,1,*.png)do
-看起来您混合了purFOR
和aFOR/L
的语法,以获得第一个(字母顺序)文件:FOR/f“delims=“%%m in('dir/b/on')如果未定义defa,请设置“defa=%m”
(进入循环前确保defa
未定义)谢谢Stephan。现在,defa的第一个值就是第一个文件ima_ooo1.pngWhatCallme
?应用程序(.exe)?另一个批处理脚本?谢谢Stephan。现在,第一个文件与第一个文件的数字顺序一致,尽管我有一个新问题,我将在一个新问题中发布。是的,Callme是一个函数,另一个批处理文件应用于第二个文件解析的文件,用于结构。