请大侠帮忙修正以下批处理!

来源:百度知道 编辑:UC知道 时间:2024/05/17 01:10:49
小弟刚学批处理,自己写了程序,但运行后错误,又看不了错误原因。郁闷~~
请哪位大侠帮忙看看问题出在哪里?并帮忙修正一下。
以下为程序:
===============================
@echo off
setlocal enabledelayedexpansion
md 1-50;51-100;101-150;151-200
for %%a in (*.txt) do (
set /a n=%%~na
if %n% ( gqu 1&leq 50) move %%~na.txt 1-50
if %n% ( gqu 51&leq 100) move %%~na.txt 51-100
if %n% ( gqu 101&leq 150) move %%~na.txt 101-150
if %n% ( gqu 151&leq 200) move %%~na.txt 151-200
)
pause
===============================

ps:我想大家也清楚我的目的,我想把1.txt~50.txt放到1-50的文件夹内;51.txt~100.txt放到50-100文件夹内.......
小弟出来“炸”到,没有多少分,只有倾“狼”相送!!!谢了!
顺便问一下,能不能想办法让批处理运行错误后不关闭窗口啊?
我想看看批处理错误的原因!
用pause没有用~

开一个cmd窗口,输入批处理名,看看错误提示吧

首先,for 用得不对,仔细看看帮助。
然后if %n% ( gqu 1&leq 50) 这样的用法可以吗?我不知道这样的用法,我试了一下,好像也不可以啊

下面的代码参考一下吧:
@echo off
for /f %%i in ('dir /a-d /b *.txt') do (
call :move %%i
)
pause
goto :eof

:move
set n=%~n1
if %n% geq 1 (
if %n% leq 50 (
move %1 1-50
) else (
if %n% leq 100 (
move %1 51-100
) else (
if %n% leq 150 (
move %1 101-150
) else (
move %1 151-200
)
)
)
)
goto :eof

@echo off
setlocal enabledelayedexpansion
md 1-50;51-100;101-150;151-200
for %%a in (*.txt) do (
set n=%%~na
if !n! NEQ 51 move "%%~nxa" "1-50\"
if !n! NEQ 101 move "%%~nxa" "51-100\"
if !n! NEQ 151 move "%%~nxa" "101-150\"
if !n! NEQ 201 move "%%~nxa" "151-200\"
)
pause

这样你应