Batch file 批处理脚本:避免无限文件循环

Batch file 批处理脚本:避免无限文件循环,batch-file,for-loop,cmd,Batch File,For Loop,Cmd,运行下面的批处理脚本,即使所有文件都移动到目标文件夹中,我也会得到一个无限循环。每次迭代时,我都会收到一条消息:“系统找不到指定的文件” @echo off SETLOCAL ENABLEDELAYEDEXPANSION cd .\IMPORT set nlot=0 :beginfor set count=0 set /a nlot=%nlot%+1 FOR /R "." %%A IN (Zango_Sku_*.xml) DO ( IF NOT EXIST .\lot%nlot% mk

运行下面的批处理脚本,即使所有文件都移动到目标文件夹中,我也会得到一个无限循环。每次迭代时,我都会收到一条消息:“系统找不到指定的文件”

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
cd .\IMPORT
set nlot=0
:beginfor
set count=0
set /a nlot=%nlot%+1
FOR /R  "." %%A IN (Zango_Sku_*.xml) DO (
    IF NOT EXIST .\lot%nlot% mkdir .\lot%nlot%
    move .\%%~nxA .\lot%nlot%\%%~nxA 
    set /a count=!count!+1
    IF !count! EQU 2000 goto :beginfor
)

您正在使用递归搜索当前目录及以下目录中的文件,并将文件移动到当前文件夹下的文件夹中,因此,通过搜索操作在新文件夹中再次找到相同的文件,再次移动,再次找到,再次移动,…1。尝试
echo move…
而不是
move…
;您将看到为什么出现
文件未找到
错误(也可以尝试
echo%%A
)。2. @MCND是正确的,请对
dir/b/s
使用
for/f
而不是
for/R
谢谢您的帮助!我刚拆下/R,它就工作了!