Board logo

标题: 如何使文件按文件名长短排列? [打印本页]

作者: dddyjq1     时间: 2008-8-15 23:07    标题: 如何使文件按文件名长短排列?

如何使同一文件夹下所有文件按文件名长短排列?先谢了
作者: HAT     时间: 2008-8-15 23:20
计算长度的时候,包括文件的扩展名吗?
作者: dddyjq1     时间: 2008-8-15 23:25
包括,谢了
作者: HAT     时间: 2008-8-16 00:02

@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

作者: dddyjq1     时间: 2008-8-16 00:33
不行啊,运行后并没有变成按文件名长短排序
作者: HAT     时间: 2008-8-16 00:47
哦,明白你的意思了。
Windows支持这个功能吗?撇开批处理不谈,你是如何手工实现的?
作者: dddyjq1     时间: 2008-8-16 01:01
我没有办法,那是否有办法输出到一个文件下让所有文件按文件名长短排序
作者: HAT     时间: 2008-8-16 02:14

@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

作者: dddyjq1     时间: 2008-8-16 22:27
对了,谢了