【发布时间】:2015-01-17 22:24:58
【问题描述】:
我编写了一个 Windows 批处理脚本来根据我放入名为 list.txt 的记事本文件中的列表检查文件并将其移动到另一个目录。但我不知道如何设置while循环。只有条件满足才跳出子路由。
在 C 编程中,我们可以通过直接设置 while 循环来编写这样的代码。但似乎在 windows 批处理中是完全不同的。
我想要的是这样的:
目录A:
1. A.txt
2. B.txt
3. list.txt (By line sequential with filename want to move)
4. process.bat
目录 B:
- 没有文件(然后按 list.txt 中设置的行顺序移动文件)或
- A.txt(如果目录中已经存在文本文件,则process.bat会在A.txt消失之前暂停)
Process.bat
@echo off
:readline
for /f "tokens=*" %%a in (list.txt) do call :processline %%a
goto :eof
:processline
if exist D:\DirectoryA\*.txt (
echo %time% >> D:\AutoLog\Log.txt
echo Previous job did not finished yet. >> D:\AutoLog\Log.txt
Timeout /t 30
echo.
)
set name=%*
if exist %name%.txt (
echo %time% >> D:\AutoLog\Log.txt
echo File found and processing %name%.txt now... >> D:\AutoLog\Log.txt
copy "%~dp0\%name%.txt" "D:\DirectoryB"
echo Transfer %name%.txt completed!! >> D:\AutoLog\Log.txt
echo. >> D:\AutoLog\Log.txt
Timeout /t 790
echo.
echo ==============================================================
)
:eof
请指导我使用 while-loop 方法完成脚本。谢谢
【问题讨论】:
-
while loop in batch 的可能重复项
-
试试jpsoft.com/help/do.htm这个网站
标签: batch-file for-loop while-loop cmd timeout