Удаление всех файлов из папки кроме батника
Добрый день.хочу сделать батник ,который бы удалял бы все файлы и папки из той папки в которой он запущен. вот что у меня вышло
Код:
set FILEMASK=*.*
set FILEPATH=%CD%
for /f "tokens=* delims=" %%i in ('dir /b /s "%FILEPATH%\%FILEMASK%"') do if /i not "%%i" == "%%~dpi%~nx0" del /f /s /q tokens=* delims= %%i
но данный вариант почему то удаляет сам батник.подскажите что не так
|
Код:
@echo off
pushd "%~dp0" || goto:eof
for /f "tokens=*" %%i in ('dir /b') do if not "%%~nxi"=="%~nx0" del "%%i"
popd
|
Цитата:
Цитата composter
хочу сделать батник ,который бы удалял бы все файлы и папки из той папки в которой он запущен »
|
интересует тот-же вопрос, только что бы удалял всю папку со всем содержимым, т.е. включая и себя. возможно ли такое?
|
7ka,
Соответственно он не удалит папку, в которой находится, если папка открыта другой программой
|
Код:
cd..
rd /s /q "%~dp0"
А это удалит и саму папку, если запускать с проводника или ярлыка
и при указанном Foreigner-ом условии.
|
Foreigner, Diskretor, после отработки батника остается висеть окно командной строки. Наверное мне нужно было объяснить все условия запуска:
Запуск происходит со съемного носителя, запускаю первый батник с флешки, он находит флешку в системе и определенную папку на ней, копирует ее в путь %SystemDrive%, запускает из скопированной папки второй батник и завершает свою работу. Второй батник отработав должен удалить скопированную ранее со съемного носителя папку и завершить свою работу но, раз он находится в той-же директории и запущен то после отработки остается висеть окно командной строки с надписью "Системе не удается найти указанный путь.", сама-же папка удалется полностью, вместе со вторым батником. Вот в этом и стоит задача: как закрыть окно командной строки?!
|
Экспромт ответ: команда Exit.
А по факту, тяжело Вам что либо подсказать без кода.
Вероятно, у Вас последующий батник запускается командой Start место Call, поэтому окно и остается висеть.
|
Я не знаю, как запускается второй батник, но вполне можно его запустить так:
Код:
2>nul cmd /c "%SystemDrive%\Folder\second.cmd"
|
Diskretor, Foreigner
Тело первого батника copy2start.bat:
Код:
@echo off
title Unattended Install
taskkill /f /im explorer.exe>nul
echo ================================================================================
echo Автоматическая установка приложений
echo ================================================================================
echo.
echo Копирование установочных файлов
echo.
echo Пожалуйста, подождите...
for %%d in (c d e f g h i j k l m n o p q r s t u v w x y z) do if exist %%d:\copy2start.bat set diskdrive=%%d:
robocopy %diskdrive%\install /e /ns /nc /nfl /ndl /np /eta /njh /njs %systemdrive%\install
echo.
echo Копирование завершено!
%systemdrive%\install\start.bat
exit
Тело второго батника start.bat (весь код не буду приводить, только начало и конец):
Код:
@echo off
title Unattended Install
echo ================================================================================
echo Автоматическая установка приложений
echo ================================================================================
echo.
echo Установка приложений
echo.
echo Пожалуйста, подождите...
start /wait %systemdrive%\install\[программа.exe] [/ключ]
start /wait %systemdrive%\install\[программа.exe] [/ключ]
start /wait %systemdrive%\install\[программа.exe] [/ключ]
etc...
echo.
echo Установка завершена!
shutdown -s -t 10 -f
rd /s /q %systemdrive%\install
exit
|
А ты пробовал?
Код:
2>nul cmd /c "%systemdrive%\install\start.bat"
|
Время: 05:53.
© OSzone.net 2001-