求一个批处理,可以将一个文件夹里的所有TXT文档,按标题名称由小到大,按顺序排列出来。

@echooffsetlocalenabledelayedexpansionfor%%ain("C:\test\*.*")do(for/f"skip=1delims=:"... @echo off
setlocal enabledelayedexpansion
for %%a in ("C:\test\*.*") do (
for /f "skip=1 delims=:" %%b in ('^(echo "%%~nxa"^&echo.^)^|findstr /o ".*"') do set /a length=%%b-5
if !length! lss 10 (
set .00!length!%%~nxa=%%~nxa
) else if !length! lss 100 (
set .0!length!%%~nxa=%%~nxa
) else (
set .!length!%%~nxa=%%~nxa
)
)
for /f "tokens=2 delims==" %%a in ('set .') do echo %%a>>C:\result.txt

这段代码只能输出目录,不能起到真正的排列作用,求高手修改下。
展开
 我来答
xq1850
2012-07-17 · TA获得超过3790个赞
知道大有可为答主
回答量:3155
采纳率:76%
帮助的人:1570万
展开全部
如果是按大小排序,直接用下面语句就可以
dir C:\test\*.txt /os /b>C:\result.txt
更多追问追答
追问
需要输出的不是记录 而是实实在在的把文件内的所有文件按标题长短排列,谢谢!
追答
批处理不能直接对视窗文件夹内的文件实现排序。你的意思是按照标题字数的长短排序?那只能是新建一个文件夹,把你提问贴出的代码最后面后面加上一段
for / "tokens=* delims=" %%a in (C:\result.txt) do move "%%~fa" 新文件夹路径
这个思路是先用代码把文件名按长短排序输出到一个文本,然后再用 for 语句从第一个开始,逐条移动到新文件夹,先移动过去的文件就在最上面。没有做任何其它操作的情况下,新文件夹内的文件顺序就是按文件名长短排序下来的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sudoku52
2012-07-17 · TA获得超过7万个赞
知道大有可为答主
回答量:1.2万
采纳率:82%
帮助的人:4935万
展开全部
最后一行for /f "tokens=2 delims==" %%a in ('set .') do echo %%a>>C:\result.txt
改成
for /f "tokens=2 delims==" %%a in ('set .') do (
type %%a>temp.tmp
move /y temp.tmp %%a
ping -n 1 127.1>nul)
dir/b/od
pause
更多追问追答
追问
文件夹内有如下文件排列顺序是
小汽车分区五.txt
地面分割隔离带.txt
文本1号.txt
笔记本二类.txt
想变成:
文本1号.txt
笔记本二类.txt
小汽车分区五.txt
地面分割隔离带.txt
-------------------按标题的长短排列。上面的代码貌似不行。
追答

这个代码测试过了


@echo off

setlocal enabledelayedexpansion

pushd r:\

for %%a in (*.txt) do (

  for /f "skip=1 delims=:" %%b in ('^(echo "%%~nxa"^&echo.^)^|findstr /o ".*"') do set /a length=%%b-5

 set length=00!length! 

 set .!length:~-3!%%~nxa=%%~nxa

)

for /f "tokens=2 delims==" %%a in ('set .') do (

type %%a>temp.tmp

move /y temp.tmp %%a

ping -n 3 127.1>nul)

dir/b/od/a-d *.txt

echo.&pause

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式