Удалить две папки вместе с cmd/bat
Здравствуйте, подскажите код который бы удалял полностью папку со всем содержимым в которой находится сам cmd/bat и папку (тоже со всем содержимым) по пути C:\Users\Администратор\AppData\Roaming\Новая папка...Спасибо!!!
|
Код:
rd /q /s "%~dp0"
rd /q /s "C:\Users\Администратор\AppData\Roaming\Новая папка"
|
Iska, немножко не то, этот код удаляет все содержимое папки в которой находится cmd файлик, но саму папку не удаляет, и C:\Users\Администратор\AppData\Roaming\Новая папка тоже не удаляет...
|
Цитата:
Цитата Dodakaedr
но саму папку не удаляет »
|
Удаляет. Просто научитесь исполнять пакетные файлы, не делая искомую папку текущей. Либо ищите иной процесс, блокирующий папку.
|
Если "Администратор" -- это Вы, то можно так:
Код:
@echo off
chcp 1251>nul
rd /q /s "%APPDATA%\Новая папка"
cd ..
rd /q /s "%~dp0"
.
|
Цитата:
Цитата Iska
Удаляет. Просто научитесь исполнять пакетные файлы, не делая искомую папку текущей. Либо ищите иной процесс, блокирующий папку. »
|
Объясняю ситуацию: делаю репак программы и имеется портативная версия программы от производителя, но свои настройки сохраняет в C:\Users\Администратор\AppData\Roaming\Новая папка, додумался создать cmd или bat с названием Uninstall чтобы удалял папку с настройками и саму папку где находится этот самый cmd/bat-ник, типа деинсталлятор....
Georgio, уже лучше, уже удаляет C:\Users\Администратор\AppData\Roaming\Новая папка, ну а как саму папку удалить в которой находился батник?
Цитата:
Цитата Georgio
Если "Администратор" -- это Вы, то можно так: »
|
а можно как-то через проверку текущего пользователя...
|
Цитата:
Цитата Dodakaedr
ну а как саму папку удалить в которой находился батник? »
|
У меня срабатывает полностью. Может Вам попробовать так (с учетом:
Цитата:
Цитата Dodakaedr
через проверку текущего пользователя... »
|
):
Код:
@echo off
chcp 1251>nul
if "%USERNAME%"=="Администратор" (
rd /q /s "%APPDATA%\Новая папка"
)
for /f "delims=" %%i in ('
dir /a /b 2^>nul^| findstr /lvc:"%~nx0"
') do (
rd /q /s "%%i" 2>nul|| del /a /f /q "%%i" 2>nul
)
cd ..
rd /q /s "%~dp0"
.
|
То что надо....но меня интересует что если пользователь не Администратор, то что будет? Эта часть кода что означает?
Код:
)
for /f "delims=" %%i in ('
dir /a /b 2^>nul^| findstr /lvc:"%~nx0"
') do (
rd /q /s "%%i" 2>nul|| del /a /f /q "%%i" 2>nul
)
|
Цитата:
Цитата Dodakaedr
Эта часть кода что означает? »
|
Удаление всего содержимого папки, кроме самого пакетного файла.
Цитата:
Цитата Dodakaedr
что если пользователь не Администратор, то что будет? »
|
Вот так ничего не будет:
Код:
@echo off
chcp 1251>nul
if "%USERNAME%"=="Администратор" (
rd /q /s "%APPDATA%\Новая папка"
for /f "delims=" %%i in ('
dir /a /b 2^>nul^| findstr /lvc:"%~nx0"
') do (
rd /q /s "%%i" 2>nul|| del /a /f /q "%%i" 2>nul
)
cd ..
rd /q /s "%~dp0"
)
exit /b
.
|
Цитата:
Цитата Georgio
Вот так ничего не будет: »
|
То есть не сработает удаление?
|
Цитата:
Цитата Dodakaedr
То есть не сработает удаление? »
|
Абсолютно верно. Ничто удалено не будет, и пакетный файл завершит работу.
|
Цитата:
Цитата Georgio
Абсолютно верно. Ничто удалено не будет, и пакетный файл завершит работу. »
|
Тогда не подходит, нужно чтобы как-то универсальный батник был, чтобы на любом другом компьютере при любом пользователе работал....
|
Цитата:
Цитата Dodakaedr
нужно чтобы как-то универсальный батник был »
|
Вам тогда не нужна проверка имени пользователя. Просто используйте переменную " APPDATA" (это и есть " C:\Users\%USERNAME%\AppData\Roaming" для Windows Vista и выше, а для Windows XP -- " C:\Documents and Settings\%USERNAME%\Application Data"):
Код:
@echo off
chcp 1251>nul
rd /q /s "%APPDATA%\Новая папка"
for /f "delims=" %%i in ('
dir /a /b 2^>nul^| findstr /lvc:"%~nx0"
') do (
rd /q /s "%%i" 2>nul|| del /a /f /q "%%i" 2>nul
)
cd ..
rd /q /s "%~dp0"
.
|
Georgio, Теперь оно самое:) Спасибо!
|
Время: 07:41.
© OSzone.net 2001-