![]() |
Перемещение Папки с файлами
Здравствуйте уважаемые!
помогите пожалуйста, нужен батник для перемещение папки с файлами например: нужно переместить папку C:\UTM\transporter\transportDB D:\Server\Fasa2\UTM\transporter |
Вариант (если папка назначения уже существует и в ней есть файлы с теми же именами, что перемещаются сюда — то будет появляться запрос на замену таких файлов; для замены без подтверждения, как и для замены файлов с атрибутом "только для чтения", потребуются дополнительные ключи для команды xcopy):
Код:
setlocal Ну и для подавления вывода на экран можно добавить первой строкой: @echo off. |
mwz спасибо, все сработало, вложенные папки и файлы скопированы а старая папка удалена!
|
А зачем nul после
Код:
if not exist "%destdir%\nul" Какая у него функция? |
Цитата:
Поскольку в каждой существующей папке можно обратится к псевдофайлу nul, то если папка существует — то и файл этот будет найден, а если папки такой нет — то и псевдофайл найден не будет. Сейчас определение существования конкретной папки делается проще — но приведённая конструкция универсальна и работает хоть в Windows 3.1, хоть в Windows 10. |
mwz,
можете пояснить как это работает, когда возможно что "A\nul" существует? Код:
@echo off Файл 156555 одновременно с одним именем папку и файл без расширения в одной директории не разместить. безо всякого вреда создать папку без вопросов (если есть) проще так: 2>nul md A, но опять же при наличии файла без расширения с именем A (или а) папка тоже не будет создана, но ошибки не будет выведено, естественно. |
alpap, хм... Спасибо!
Насчёт файла и папки с одинаковым именем понял, учту (мог и не учесть в других случаях; здесь же при использовании \nul предполагалось, что проверено будет наличие именно папки). И придётся менять свои воззрения: значит nul теперь не во всех конструкциях может быть использован (благо в данном случае к проблемам не привело)... А файл и папка, скажем, A, тогда при проверке должны разделяться проверкой существования A\ и A , причём для проверки наличия папки достаточно проверить наличие только A\, а файла — наличие A при отсутствии A\ Я вроде правильно понял? |
mwz, alpap,
Цитата:
Вот тестовый батник
Код:
@Echo Off Вот результат
Код:
kuku11 Надо поберечься. Вот вариант решения. Непустые папки удалены не будут
Код:
@Echo Off |
Цитата:
|
Самым правильным будет проверка существования как целевого каталога, так и одноимённого с ним файла, потому для каталога используем имя «"%destdir%\."», для файла — чистый «"%destdir%», потому как а) кроме каталога %destdir% там может существовать и файл %destdir%, б) точка — реально существующее в каталоге файловой системы имя каталога, ссылающееся на сам этот каталог, равно как «..» — ссылка на родительский каталог. «.» существует в любом каталоге, в том числе и в корневом, «..» — существует в любом каталоге, кроме корневого.
Update: собственно, коллеги выше уже всё разжевали. Когда-нибудь я научусь сначала дочитывать тему до конца, и только потом «кидаться в бой» :lol:. |
Цитата:
|
Время: 23:00. |
Время: 23:00.
© OSzone.net 2001-