hron66
04-12-2013, 10:07
Добрый день. Уважаемые форумчане, есть проблема. Задача стоит следующим образом: необходимо в конкретной папке и всех подпапках найти и удалить:
1) Пустые (нулевые) файлы
2) Файлы, в которых первый символ - .(точка).
Проблема решена лишь частично, сделано удаление пустых файлов в папке и всех подпапках. А вот с удалением файлов, в которых первый символ - точка, не могу до конца разобраться с синтаксисом, хотя наброски уже есть.
@Echo Off
SetLocal
cd /D d:\CSVUpload
For /F "Tokens=*" %%A In ('Dir /B /S /AD 2^>nul^|Sort /R') Do (
For /F "Tokens=3*" %%B In ('Dir "%%A" /S /A-D /N /-C 2^>nul^|FindStr /irc:":[0-5][0-9] *0"') Do Del /F /Q "%%A\%%C" 2>nul&&Echo:File %%A\%%C deleted.
For /F "Tokens=3*" %%B In ('set /p ff=<%%A\%%C') Do IF %ff:~,1% ==. Del /F /Q "%%A\%%C" 2>nul&&Echo:File %%A\%%C deleted.
)
Во внутреннем цикле 1-я строка - удаление пустых файлов, 2-я строка - удаление файлов, содержащих первый символ точку. Вот в этой строке проблема.
Хотя отдельно от циклов, задача частично решена. Вот код:
rem @echo off
set /p ff=<file.txt
IF %ff:~,1% ==. (echo YES2) else (echo NO2)
pause
Этот код ищет первый символ в файле. Вот этот код я и пытался приладить к основному файлу с циклами.
Помогите, чем сможете..
1) Пустые (нулевые) файлы
2) Файлы, в которых первый символ - .(точка).
Проблема решена лишь частично, сделано удаление пустых файлов в папке и всех подпапках. А вот с удалением файлов, в которых первый символ - точка, не могу до конца разобраться с синтаксисом, хотя наброски уже есть.
@Echo Off
SetLocal
cd /D d:\CSVUpload
For /F "Tokens=*" %%A In ('Dir /B /S /AD 2^>nul^|Sort /R') Do (
For /F "Tokens=3*" %%B In ('Dir "%%A" /S /A-D /N /-C 2^>nul^|FindStr /irc:":[0-5][0-9] *0"') Do Del /F /Q "%%A\%%C" 2>nul&&Echo:File %%A\%%C deleted.
For /F "Tokens=3*" %%B In ('set /p ff=<%%A\%%C') Do IF %ff:~,1% ==. Del /F /Q "%%A\%%C" 2>nul&&Echo:File %%A\%%C deleted.
)
Во внутреннем цикле 1-я строка - удаление пустых файлов, 2-я строка - удаление файлов, содержащих первый символ точку. Вот в этой строке проблема.
Хотя отдельно от циклов, задача частично решена. Вот код:
rem @echo off
set /p ff=<file.txt
IF %ff:~,1% ==. (echo YES2) else (echo NO2)
pause
Этот код ищет первый символ в файле. Вот этот код я и пытался приладить к основному файлу с циклами.
Помогите, чем сможете..