【发布时间】:2017-12-08 10:19:35
【问题描述】:
我正在尝试循环数组中的所有源文件,并确保它在我设置的文件路径的文件夹中退出,下面是我的代码
@echo OFF
setlocal EnableExtensions EnableDelayedExpansion
set "string_list=A.txt B.txt C.txt D.txt"
set count=0
For %%j in (%string_list%) Do Set /A count+=1
rem echo.Total count: %count%
set current_count=0
REM for %%s in (%string_list%) do (
for %%s in (%string_list%) do (
set "var=C:\Users\ABC\Desktop\TESTING\%%s"
rem echo "!var!"
:START
if not exist "!var!" GOTO WAIT
GOTO COPY
:WAIT
timeout 5
ECHO "MISSING !var!, WAITING SOURCE FILE TO LOAD IN"
GOTO START
:COPY
ECHO "!var! FILES IS AVAIALBLE"
set /A current_count+=1
if /I %current_count%==%count% (
echo "ALL THE FILE IS IS AVAILABLE"
) else (
echo "CONTINUE CHECK FOR OTHER FILE"
)
)
rem echo %current_count%
pause
一旦找到第一个文件,它将退出循环。代码是检查并确保所有文件都在文件夹中,如果其中一个文件不存在则继续循环直到文件存在。
我不确定该函数是否可以添加到 FOR 循环中。
我期待这个:
C:\Users\ABC\Desktop\TESTING\A.txt FILES IS AVAILABLE等待0秒,按一个键继续...
但我明白了:
MISSING C:\Users\ABC\Desktop\TESTING\B.txt, WAITING SOURCE FILE TO LOAD IN
C:\Users\ABC\Desktop\TESTING\B.txt FILES IS AVAIALBLE
C:\Users\ABC\Desktop\TESTING\C.txt FILES IS AVAIALBLE
C:\Users\ABC\Desktop\TESTING\D.txt FILES IS AVAIALBLE
只有当所有文件都在文件夹中时,循环才应该退出,否则它将继续循环。
【问题讨论】:
标签: windows batch-file