跳转至

一键获取文件夹内所有文件的名称

获取当前文件夹下所有文件的名称并保存在一个filename.txt文件当中:

@echo off
setlocal enabledelayedexpansion
(for %%f in (*.*) do (
    if /i not "%%~nf"=="%~n0" if /i not "%%~nf"=="filename" echo %%~nf
)) > filename.txt

升级版

老代码输出的文件名排序有点问题

比如 1-20 开头的文件

代码输出的文件顺序结果是

10、11、12、13、14、15、16、17、18、19、1、20、2、3、4、5、6、7、8、9

而我想要的是

1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16、17、18、19、20

下面是修改后的代码,使用方法同上:

@echo off
setlocal enabledelayedexpansion
set "script_basename=%~n0" 
(for %%f in (*.*) do (
    if /i not "%%~nf"=="!script_basename!" if /i not "%%~nf"=="filename" echo %%~nf 
)) | powershell -Command "$Input | Sort-Object -Property @{Expression={if ($_ -match '^(\d+)') {[int]$Matches[1]} else {[int]::MaxValue}}}, @{Expression={$_}} | Set-Content -Path 'filename.txt'"