Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
MadSam Гость
|
Добавлено: Вт Сен 09 2003 16:58 Заголовок сообщения: Помогите с BAT файлом |
|
|
Нужно написать BAT файл, который при выполнении удаляет себя и каталог, в котором он находится. |
|
Вернуться к началу |
|
|
4u3u
Зарегистрирован: 24.01.2003 Сообщения: 997 Откуда: Moscow
|
Добавлено: Вт Сен 09 2003 19:26 Заголовок сообщения: Re: Помогите с BAT файлом |
|
|
Ничего особо сложного. Может есть и более элегантный способ, но бы сделал так:
Внутри батника создавай временный батник *в другой папке*, содержащий небольшую задержку (sleep 1) и команды делитить исходную папку (rmdir /q /s %folder%) и временный батник (del /q /f %tempbat%). В конце основного батника стартуй временный (start cmd /c %tempbat%). Главное, чтобы в этот момент ни один из файлов в исходной папке не был открыт или залочен. Иначе папка не удалится. У меня есть рабочий кусок похожего батника, я б здесь запостил, да форум символы перенаправления покоцает (
P.S. sleep.exe есть в Support Tools |
|
Вернуться к началу |
|
|
MadSam Гость
|
Добавлено: Вт Сен 09 2003 20:40 Заголовок сообщения: Re: Помогите с BAT файлом |
|
|
Слушай, перешли мне пожалуйста этот батник или исходный текст, очень надо... Заранее Спасибо |
|
Вернуться к началу |
|
|
4u3u
Зарегистрирован: 24.01.2003 Сообщения: 997 Откуда: Moscow
|
Добавлено: Ср Сен 10 2003 10:47 Заголовок сообщения: Ладно, попробую здесь(+) |
|
|
Вот. Надеюсь, символы правильно отобразятся. Я вообще-то с опаской отношусь к скриптам, которые что-либо удаляют в массовом порядке... Этот должен удалять целиком папку, в которой находится. Я проверил, у меня работает. Да, чуть не забыл. Батник для win2k ) ----------------------
@echo off
rem Path to this bat file rem (do not edit) set f="%~dp0"
rem Path to temporary bat file rem (may be edited) set tb="%temp%\%random%.bat"
pushd %temp%
rem Make temporary batch file echo ^@echo off > %tb% rem echo sleep 1 >> %tb% echo rmdir /q /s %f% ^>nul 2^>^&1 >> %tb% echo if exist %f% ^( >> %tb% echo echo Can't delete %f% >> %tb% echo echo Check if any file within %f% >> %tb% echo echo is used by another process >> %tb% echo pause >> %tb% echo ^) >> %tb% echo del /q /f %tb% >> %tb%
rem Execute temp. batch echo %f% will be deleted now. pause start cmd /c %tb%
-------------------------- |
|
Вернуться к началу |
|
|
MadSam Гость
|
Добавлено: Ср Сен 10 2003 17:30 Заголовок сообщения: Re: Ладно, попробую здесь(+) |
|
|
Спасибо, проверю.... |
|
Вернуться к началу |
|
|
MadSam Гость
|
Добавлено: Пн Сен 15 2003 18:40 Заголовок сообщения: Re: Ладно, попробую здесь(+) |
|
|
Здорово. Слушай, А в Win98 батник будет работать??? Я код перекотал, только батник не работает. Он выдаёт вот что: "Имя файла или команды указано неправильно "~dp0" will be deleted now Нажмите любую клавишу...
Не найден файл 'cmd'(или один из его компонентов).Проверьте правильность ввода пути и имени файла, а также доступность всех требуемых библиотек." |
|
Вернуться к началу |
|
|
|