PDA

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


ConMan
16-03-2011, 21:11
И снова здраствуйте, помогите с задачей:

Необходимо создать Пакетный файл, предназначенный для удаления файлов с определенным расширением, расположенных в месте, заданном определенным путем. Полный путь расположения и расширение удаляемых файлов задаются в качестве пакетных параметров. В процессе необходимо осуществлять запрос на подтверждение удаления. После удаления в отдельный файл выводится отчет, содержащий список удаленных файлов с их полным путем, который, в свою очередь, в автоматическом режиме загружается в текстовый процессор «Блокнот».

Надеюсь на вашу поддержку. Спасибо.

James Marsh
17-03-2011, 14:57
set a=расширение
set b=путь удаления
set c=путь к файлу лога
set d=имя файла лога

del %b%\%a% >> %c%\%d%

notepad %c%\%d%

Iska
17-03-2011, 18:51
@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"

ConMan
17-03-2011, 21:19
Решено! :))))
дай расцелую)

ConMan
23-03-2011, 23:39
ругается на script.cmd , если его убрать , ругается на путь к папке.

не является внутренней или внешней программой, исполняемой пакетным файлом :(

Iska
24-03-2011, 04:49
ConMan, опишите подробно Ваши действия.

ConMan
24-03-2011, 11:17
Запускаю батник. Вставляю параметры в ковычках . script.cmd " путь " "р асширение"" путь к логу".ивот такую ошибку выдает

Iska
24-03-2011, 11:30
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).

ConMan
26-03-2011, 12:21
START c:\users\Danila\desktop\123.bat

затем

script.cmd "c:\users\Danila\desktop\1\" "txt" "c:\users\danila\desktop\log.txt"


ошибка

"script.cmd" не является внутренней или внешней командой, исполняемой программой или пакетным файлом

Iska
26-03-2011, 12:39
ConMan, полагаю, что Ваш «123.bat» — это и есть «script.cmd» из примера. Т.е., нечто наподобие:
START "" "c:\users\Danila\desktop\123.bat" "c:\users\Danila\desktop\1" "txt" "c:\users\danila\desktop\log.txt"

ConMan
26-03-2011, 12:45
START "" "c:\users\Danila\desktop\123.bat" "c:\users\Danila\desktop\1" "txt" "c:\users\danila\desktop\log.txt"

Синтаксическая ошибка в имени файла, имени папки или метки тома

:(

ConMan
26-03-2011, 13:01
А вот если другим способом

@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