批处理实现D盘下所有文件夹路径写到txt文件

查看 85|回复 6
作者:天可怜见   
[color=]批处理,实现D盘test目录下所有文件夹路径写到txt文件,要求输出必须按照文件夹序号升序排列(默认序号11文件名会排在序号1的后面),路径后面要以“\”结束,格式如下图:

批处理, 文件夹

52pojieAlvin   

dir /b /s  > list.txt
天可怜见
OP
  


52pojieAlvin 发表于 2023-3-20 22:24
dir /b /s  > list.txt

要求:输出必须按照文件夹序号升序排列(默认序号11文件名会排在序号1的后面),路径后面要以“\”结束,帮忙看下要怎么改?
ml0788686   

dir /b /s  > list.txt
SailZhao520   

[Bash shell] 纯文本查看 复制代码@echo off
setlocal enabledelayedexpansion
rem 遍历D盘test目录下的所有文件夹
set "counter=1"
for /d %%i in (D:\test\*) do (
  set "folder[!counter!]=%%i\"
  set /a "counter+=1"
)
rem 将文件夹路径按照升序排列
for /l %%i in (1,1,%counter%) do (
  for /l %%j in (%%i,1,%counter%) do (
    set "folder1=!folder[%%i]!"
    set "folder2=!folder[%%j]!"
    if "!folder1!" gtr "!folder2!" (
      set "folder[%%i]=!folder2!"
      set "folder[%%j]=!folder1!"
    )
  )
)
rem 将排序后的文件夹路径写入txt文件
set "output_file=D:\test\folders.txt"
del "%output_file%" 2>nul
for /l %%i in (1,1,%counter%) do (
  echo !folder[%%i]!>>"%output_file%"
)
echo "Done."
天可怜见
OP
  


SailZhao520 发表于 2023-3-20 22:42
[mw_shl_code=bash,true]@echo off
setlocal enabledelayedexpansion

膜拜了,大佬!但是有一个问题,如下1开头的序号会并列排在1的后面,这个需要怎么规避了
ECHO is off.
D:\test\1.test - Copy (1)\
D:\test\11.test - Copy (11)\
D:\test\2.test - Copy (2)\
D:\test\3.test - Copy (3)\
D:\test\4.test - Copy (4)\
D:\test\5.test - Copy (5)\
平淡最真   


天可怜见 发表于 2023-3-20 23:03
膜拜了,大佬!但是有一个问题,如下1开头的序号会并列排在1的后面,这个需要怎么规避了
ECHO is off.
...

这个是windows系统的机制,除了改名没听说有啥办法
或者说你的文件夹名字真的是你举得例子这样的,好像是可以的  但你的真实文件应该不是这样的
您需要登录后才可以回帖 登录 | 立即注册

返回顶部