Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Пакетный файл, предназначенный для удаления файлов с определенным расширением (http://forum.oszone.net/showthread.php?t=202187)

ConMan 16-03-2011 21:11 1636551

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

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

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

James Marsh 17-03-2011 14:57 1637083

Код:

set a=расширение
set b=путь удаления
set c=путь к файлу лога
set d=имя файла лога

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

notepad %c%\%d%


Iska 17-03-2011 18:51 1637235

Код:

@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 1637392

Решено! :))))
дай расцелую)

ConMan 23-03-2011 23:39 1642369

ругается на script.cmd , если его убрать , ругается на путь к папке.

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

Iska 24-03-2011 04:49 1642501

ConMan, опишите подробно Ваши действия.

ConMan 24-03-2011 11:17 1642676

Запускаю батник. Вставляю параметры в ковычках . script.cmd " путь " "р асширение"" путь к логу".ивот такую ошибку выдает

Iska 24-03-2011 11:30 1642685

1. Приведите точную командную строку, используемую Вами для вызова пакетного файла, обрамлённую тэгом «code», наподобие приведённой в #3.

2. Приведите точное сообщение об ошибке, скопировав текст из окна консоли, так же обрамив его тэгом «code».

ConMan 26-03-2011 12:21 1644241

Код:

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 1644259

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 1644265

Код:

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 1644281

А вот если другим способом
Код:

@echo off

set a=txt
set b=d:\Temp\
set c=d:\Temp\12
set d=log.txt

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

что нужно переписать?


Время: 23:49.

Время: 23:49.
© OSzone.net 2001-