批处理问题,请高手指点

来源:百度知道 编辑:UC知道 时间:2024/05/24 03:46:38
代码如下
@ECHO off
@set filesname=filesname.txt
@set now_num=
@set movcount=
cd trafica10
@dir /od /b >..\%filesname%
@for /F "delims=" %%a in (D:\test\data\%filesname%) do (
@set /a now_num+=1
)
@echo "hehe" %now_num%
if %now_num% GTR 2 (
@for /F "delims=" %%a in (D:\test\data\%filesname%) do (
@set /a movcount+=1
if %movcount% LEQ 20000(
@move %a%.bat D:\test\data\filemiddle
) else (
@exit
)
)
)else(
@echo "还没有20000个呢"
@pause
)

出问题的地方
if %movcount% LEQ 20000(
@move %a%.bat D:\test\data\filemiddle
) else (
@exit

说什么
此时不应有 20000。
改后,又说不能用else(

看了一下,至少有以下问题:
0. 建议:@echo off之后,后面的命令就没必要加@了
下面是错误的地方:

1. if 条件 command空格,就像2000(
2. else空格,你下面是else()
3. %a%.txt 变量a姑且不说从哪来,但是你没开变量延时
不停的移动同一个文件,可能吗??
4. %movcount% 是for中使用的变量,要开变量延时,否则这个值永远是空的

注意空格 20000 ()

我知道问题出在哪了

for命令不能用else