Это можно сделать с помощью следующего пакетного файла, если имя не скрытого файла не содержит восклицательный знак.
@echo off
setlocal EnableExtensions EnableDelayedExpansion
(for %%I in (*) do (
set "FileName=%%~nI"
if not defined FileName set "FileName=%%~xI"
if not "!FileName:~30!" == "" echo %%~nxI
))>length.txt
rem Delete length.txt if being an empty file.
for %%I in (length.txt) do if %%~zI == 0 del length.txt
endlocal
Следующий пакетный файл медленнее, но обрабатывает правильные и не скрытые файлыс !
в имени файла.
@echo off
setlocal EnableExtensions DisableDelayedExpansion
(for %%I in (*) do (
set "FileName=%%~nI"
if not defined FileName set "FileName=%%~xI"
setlocal EnableDelayedExpansion
if not "!FileName:~30!" == "" echo %%~nxI
endlocal
))>length.txt
rem Delete length.txt if being an empty file.
for %%I in (length.txt) do if %%~zI == 0 del length.txt
endlocal
Оба пакетных файла обрабатывают имя файла, например .htaccess
, как файл с именем файла .htaccess
и не имеют расширения файла, пока обрабатывается командный процессор Windowsтакие файлы, как имя файла пустое и расширение файла .htaccess
.
Для понимания используемых команд и их работы откройте окно командной строки, выполните там следующие команды и полностью прочитайте все отображаемые страницы справки.для каждой команды очень тщательно.
del /?
echo /?
endlocal /?
for /?
if /?
rem /?
set /?
setlocal /?