gpt4 book ai didi

windows - 按文件名前缀的顺序批量读取目录中的文件?

转载 作者:可可西里 更新时间:2023-11-01 13:16:49 24 4
gpt4 key购买 nike

我在目录中有许多 SQL 脚本,以数字为前缀,例如

enter image description here

目前,我可以使用此脚本循环遍历它们:

@ECHO OFF
FOR /r . %%F IN (*.sql) DO (
ECHO File:"%%F"
)

但是,由于 Windows 读取目录中文件的方式,10 和 11 在 2 之前读取,依此类推:

enter image description here

如何按前缀顺序遍历目录中的每个文件?

最佳答案

下面的批处理文件在需要它的文件名中插入前导零。

@echo off
setlocal EnableDelayedExpansion
for /F "delims=" %%f in ('dir /B *.sql') do (
set "filename=%%f"
if "!filename:~1,1!" equ "-" ren "%%f" "0%%f"
)

编辑:添加了新的解决方案

下面的批处理文件以正确的顺序显示了文件,没有重命名它们。

@echo off
setlocal EnableDelayedExpansion
rem Create an array with filenames in right order
for %%f in (*.sql) do (
for /F "delims=-" %%n in ("%%f") do (
set "number=00000%%n"
set "file[!number:~-6!]=%%f"
)
)
rem Process the filenames in right order
for /F "tokens=2 delims==" %%f in ('set file[') do (
echo %%f
)

关于windows - 按文件名前缀的顺序批量读取目录中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18748744/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com