For loop 批处理文件-如果文件夹为空,如何退出循环

For loop 批处理文件-如果文件夹为空,如何退出循环,for-loop,ftp,batch-processing,For Loop,Ftp,Batch Processing,对不起,如果这是太noob和为我可怜的英语。 我在这方面很挣扎:我做了一个批处理,递归读取文件夹的内容,然后创建一个脚本,将存储在变量中的文件放在ftp文件夹中,运行它,然后将传输的文件移动到另一个文件夹中进行跟踪。 我需要的是在移动最后一个文件且文件夹为空时停止批处理,以下是我的代码: :loop for /f "delims=" %%a in ('dir /b /a-d "C:\myfolder" ') do set filenamer=%%a ech

对不起,如果这是太noob和为我可怜的英语。 我在这方面很挣扎:我做了一个批处理,递归读取文件夹的内容,然后创建一个脚本,将存储在变量中的文件放在ftp文件夹中,运行它,然后将传输的文件移动到另一个文件夹中进行跟踪。 我需要的是在移动最后一个文件且文件夹为空时停止批处理,以下是我的代码:

:loop
for /f "delims=" %%a in ('dir /b /a-d "C:\myfolder" ') do set filenamer=%%a
echo open [ftpIPAddress]>ftpscript.ftp
echo [ftpuser]>>ftpscript.ftp
echo [ftppasswd]>>ftpscript.ftp
echo lcd C:\myfolder>>ftpscript.ftp
echo cd [remoteTargetLocation]>>ftpscript.ftp
echo binary>>ftpscript.ftp
echo put %filenamer%>>ftpscript.ftp
echo quit>>ftpscript.ftp
ftp -i -s:ftpscript.ftp
move C:\myfolder\%filenamer% C:\myfolder\sent
TIMEOUT /T 4
goto loop

更改
set“filenamer=”&for/f“delims=”%%a in('dir/b/a-d“C:\myfolder”2^>nul')设置“filenamer=%%a”
并添加
如果未定义filenamer goto:eof
您好Einstein,非常感谢我更改了第一行并添加了“如果未定义…”字符串,它实际上会停止,但在“put”命令之后的ftp提示符中,我需要实现的是关闭提示窗口时,文件夹是空的,我会设法找到一种方法,谢谢!