Как могу переместить папку через бат?

walentin

Новый пользователь
Сообщения
11
Реакции
0
Баллы
1
помогите я хотел создать такой bat файл,чтобы одним кликом мог переместит папку на другую директорию
 

Кирилл

Команда форума
Администратор
Сообщения
14,089
Реакции
6,139
Баллы
993
Перенёс в профильный раздел
 
Последнее редактирование:

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,394
Реакции
5,892
Баллы
718
Код:
move /?
 

walentin

Новый пользователь
Сообщения
11
Реакции
0
Баллы
1
хочу переместит папку с одной на другую директорию
move не возможно только файлы можно
 
Последнее редактирование:

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,394
Реакции
5,892
Баллы
718
кто вам такую чушь сказал?
 

walentin

Новый пользователь
Сообщения
11
Реакции
0
Баллы
1
простите я попробовал не получается а на help move ничего лишнего не написано если вы знаете помогите но пожалуйста если хотите задавайте всех подряд не отнимите моё время напрасно
я имею в виду если у вас ест вопросы задавайте подряд все
 
Последнее редактирование:

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,394
Реакции
5,892
Баллы
718
приведите вашу команду move и скриншот консоли, где у вас "не получается"
 

walentin

Новый пользователь
Сообщения
11
Реакции
0
Баллы
1
Setlocal EnableExtensions EnableDelayedExpansion
chcp 1251>nul
set From=c:\temp
set Fld=c:\temp2
if not exist "%Fld%" mkdir "%Fld%"
for /f "delims=" %%i in ('dir "%From%" /b /a:d') do (
set /a n+=1
"%ProgramFiles%\WinRAR\Rar.exe" a -ep1 "%Fld%\!n!.rar" "%From%\%%i"
)
chcp 866>nul
pause
Microsoft Windows [Version 6.1.7601]
(c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены.

C:\Users\User>move/?
Перемещение файлов и переименование файлов и папок

Перемещение одного или более файлов:
MOVE [/Y | /-Y] [диск:][путь]имя_файла1[,...] назначение

Переименование папки:
MOVE [/Y | /-Y] [диск:][путь]имя_папки новое_имя_папки

[диск:][путь]имя_файла1 Определяет местоположение файла или файлов, которые
необходимо переместить.
Назначение Определяет новое местоположение файла. Назначение
может состоять из буквы диска (с последующим
двоеточием), имени папки или их комбинации. При
перемещении только одного файла, можно указать и его
новое имя, если хотите выполнить его одновременное
переименование при перемещении.
[диск:][путь]имя_папки Определяет папку, которую необходимо переименовать.
новое_имя_папки Определяет новое имя папки.

/Y Перезаписывать существующие файлы назначения без
предупреждения.
/-Y Предупреждать при перезаписи существующего файла
назначения.

Ключ /Y может присутствовать в значении переменной среды окружения COPYCMD.
Оно может перекрываться ключом /-Y в командной строке. По умолчанию
используется предупреждение о перезаписи, если только команда MOVE не
выполняется как часть пакетного файла.

C:\Users\User>
 
Последнее редактирование:

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,394
Реакции
5,892
Баллы
718
Код:
move "исходная папка" "назначение"

я не вижу в вашем коде команды move
 

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,394
Реакции
5,892
Баллы
718
и справку я умею читать, зачем вы ее процитировали, нужен скриншот ошибки консоли, а не мануал

Если вы пытаетесь переместить папки между разными дисками, то у винды нету такой прямой операции - сперва выполняется копирование, потом удаление источника, т.е. xcopy и rd
 
Последнее редактирование:

walentin

Новый пользователь
Сообщения
11
Реакции
0
Баллы
1
вот например move E:\dir D:\dir\
 

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,394
Реакции
5,892
Баллы
718
как дополнил выше, это не сработает, нужно:

Код:
xcopy /c /e /h /r /y /i /k  "E:\dir" "D:\dir" && rd /s /q "E:\dir"
 

walentin

Новый пользователь
Сообщения
11
Реакции
0
Баллы
1
а через move никак нельзя?
это не получилась там только копирует не удаляется
 
Последнее редактирование:

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,394
Реакции
5,892
Баллы
718
Еще раз говорю, виндовс не поддерживает такую операцию, ее просто нет.
Если вы где-либо видели на PowerShell или др. языке подобное в одну команду, то это просто обёртка поверх двух операций - сперва копирование, затем удаление исходника.
Каждый логический диск имеет своё пространство на физическом уровне. Не достаточно просто изменить ссылку в MFT, чтобы переместить объект между разными дисками.
 

walentin

Новый пользователь
Сообщения
11
Реакции
0
Баллы
1
спасибо за ответ! но меня интересует то что как файл можно переместить а директорию нет ?
 

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,394
Реакции
5,892
Баллы
718
С файлом происходит тоже самое. Это уже внутренние особенности ("ограничения") реализации самой команды move.
Точнее реализации самой API MoveFile, которую зовёт move.

MSDN написал(а):
A new file may be on a different file system or drive. A new directory must be on the same drive.
 
Последнее редактирование:

walentin

Новый пользователь
Сообщения
11
Реакции
0
Баллы
1
так как я понимаю что при команде выразить задаётся две команды xcopy & rd
 

walentin

Новый пользователь
Сообщения
11
Реакции
0
Баллы
1
а что если move D:\dir D:\x\ получается
вы сказали: " Если вы пытаетесь переместить папки между разными дисками, то у винды нету такой прямой операции - сперва выполняется копирование, потом удаление источника, т.е. xcopy и rd"
 
Последнее редактирование:
Сверху Снизу