Войти

Показать полную графическую версию : [решено] Вывод в файл имен последних файлов в папках


ivanxam
01-10-2013, 10:00
Добрый день. Нужен bat, который выводит в файл имена последних файлов в папках


@echo off
SetLocal EnableDelayedExpansion

for /F %%A in (listdir.txt) do (
for /f %%i in ('dir %%A /a-d /o-d /b') do (echo %%i >> dir.txt && exit) )



listdir.txt выглядит так
G:\jurnal\100001
G:\jurnal\100002
G:\jurnal\100003
G:\jurnal\100004
...

В файл выводит только имя последнего файла из первой папки, потом вообще выходит из программы, это из-за exit, но без него выводит все файлы.
Помогите разобраться.

Iska
01-10-2013, 13:05
Например, так:
@echo off
setlocal enableextensions enabledelayedexpansion

set sOutFile=dir.txt
set sListFile=listdir.txt

if exist "%sOutFile%" del /f /q "%sOutFile%"

if exist "%sListFile%" (
for /f "usebackq delims=" %%i in ("%sListFile%") do (
if exist "%%~i\." (
for /f "usebackq" %%j in (`dir /a:-d /o:-d /b "%%~i"`) do (
if not defined bFirstStep (
set bFirstStep=1
>>"%sOutFile%" echo %%j
)
)
set bFirstStep=
) else (
echo Can't find folder [%%~i]
)
)
) else (
echo Can't find file [%sListFile%].
)

endlocal
exit /b 0

ivanxam
01-10-2013, 13:26
Iska, премного благодарен, все как доктор прописал. :)




© OSzone.net 2001-2012