Показать полную графическую версию : Пакетный файл, предназначенный для удаления файлов с определенным расширением
И снова здраствуйте, помогите с задачей:
Необходимо создать Пакетный файл, предназначенный для удаления файлов с определенным расширением, расположенных в месте, заданном определенным путем. Полный путь расположения и расширение удаляемых файлов задаются в качестве пакетных параметров. В процессе необходимо осуществлять запрос на подтверждение удаления. После удаления в отдельный файл выводится отчет, содержащий список удаленных файлов с их полным путем, который, в свою очередь, в автоматическом режиме загружается в текстовый процессор «Блокнот».
Надеюсь на вашу поддержку. Спасибо.
James Marsh
17-03-2011, 14:57
set a=расширение
set b=путь удаления
set c=путь к файлу лога
set d=имя файла лога
del %b%\%a% >> %c%\%d%
notepad %c%\%d%
@echo off
setlocal enableextensions enabledelayedexpansion
set sFolder=%~1
set sExt=%~2
set sLog=%~3
if not defined sExt call :Usage & exit /b 1
if not defined sFolder call :Usage & exit /b 1
if not defined sLog call :Usage & exit /b 1
if not exist "%sFolder%" echo Not found folder [%sFolder%] & exit /b 1
if exist "%sLog%" del "%sLog%">nul
for /f "tokens=*" %%i in ('dir /b /a:-d "%sFolder%\*.%sExt%"') do (
del /p /f "%sFolder%\%%i"
if not exist "%sFolder%\%%i" echo %sFolder%\%%i>>"%sLog%"
)
if exist "%sLog%" start "" "%systemroot%\system32\notepad.exe" "%sLog%"
endlocal
exit /b 0
rem ==========================================================================
rem Процедура Usage
rem ==========================================================================
:Usage
echo Usage: %~nx0 ^<Path to folder^> ^<Extension^> ^<Path to log^>
exit /b 0
rem ==========================================================================
Пример вызова:
script.cmd "E:\Песочница\0044\0001" "bat" "0001.txt"
Решено! :))))
дай расцелую)
ругается на script.cmd , если его убрать , ругается на путь к папке.
не является внутренней или внешней программой, исполняемой пакетным файлом :(
ConMan, опишите подробно Ваши действия.
Запускаю батник. Вставляю параметры в ковычках . script.cmd " путь " "р асширение"" путь к логу".ивот такую ошибку выдает
1. Приведите точную командную строку, используемую Вами для вызова пакетного файла, обрамлённую тэгом «code» (http://forum.oszone.net/misc.php?do=bbcode#code), наподобие приведённой в #3 (http://forum.oszone.net/post-1637235-3.html).
2. Приведите точное сообщение об ошибке, скопировав текст из окна консоли, так же обрамив его тэгом «code» (http://forum.oszone.net/misc.php?do=bbcode#code).
START c:\users\Danila\desktop\123.bat
затем
script.cmd "c:\users\Danila\desktop\1\" "txt" "c:\users\danila\desktop\log.txt"
ошибка
"script.cmd" не является внутренней или внешней командой, исполняемой программой или пакетным файлом
ConMan, полагаю, что Ваш «123.bat» — это и есть «script.cmd» из примера. Т.е., нечто наподобие:
START "" "c:\users\Danila\desktop\123.bat" "c:\users\Danila\desktop\1" "txt" "c:\users\danila\desktop\log.txt"
START "" "c:\users\Danila\desktop\123.bat" "c:\users\Danila\desktop\1" "txt" "c:\users\danila\desktop\log.txt"
Синтаксическая ошибка в имени файла, имени папки или метки тома
:(
А вот если другим способом
@echo off
set a=txt
set b=d:\Temp\
set c=d:\Temp\12
set d=log.txt
del %b%\*.%a% >> %c%\%d%
что нужно переписать?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC