Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.63/274: Рейтинг темы: голосов - 274, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 03.11.2010
Сообщений: 15

Перенос файлов из одной папки в другую

21.08.2012, 16:15. Показов 55526. Ответов 37
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.
помогите создать Батник
Задача в том что бы Батник выполнял перенос файлов с одной папки в другую.

Есть папка находится на диске \\kvfoss\U1H0\IN с этой папки нужно перенести файлы в папку P:\U1H0\IN
Что бы любой файл который попадет туда перенесся в другую папку.
тоисть появился там файл и автоматом перенесся файл в другую папку беспрерывный процес что бы был.

И также что бы с P:\U1H0\OUT перенесся в папку \\kvfoss\U1H0\OUT

что бы было это в одном батнике и процес был не прерывным. появился файлик оно его перекинуло и все. ждет файлика следушего... ну например проверка каждые 10 секунд файликов
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.08.2012, 16:15
Ответы с готовыми решениями:

Перенос определённых файлов из одной папки в другую
Доброго вечера и дня! Задача в том что бы Batch-фаил переносил (не копировал) файлы с расширением .war с одной папки в другую, как только...

Перенос n-ного количества файлов из одной папки в другую
Добрый день! Прошу помощи в решении такой не простой для меня задаче. Имеется папка (А) с неким количеством файлов. Требуется...

Копирование файлов из одной папки в другую, но с пропуском одинаковых файлов в этих папках
Доброго времени суток. Прошу помощи в написании батника. Задача: Есть папка А с файлами 1,2,3 и папка Б с этими же файлами 1,2 и 3. ...

37
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
21.08.2012, 20:07
Windows Batch file
1
2
3
4
5
6
7
8
9
10
@echo off
set source1=\\kvfoss\U1H0\IN
set dest1=P:\U1H0\IN
set source2=P:\U1H0\OUT
set dest2=\\kvfoss\U1H0\OUT
:start
dir %source1% /a-d /b&&move /y %source1%\*.* %dest1%
dir %source2% /a-d /b&&move /y %source2%\*.* %dest2%
ping -n 1 -w 10000 192.168.254.254>NUL
goto :start
3
0 / 0 / 0
Регистрация: 03.11.2010
Сообщений: 15
22.08.2012, 11:20  [ТС]
Спасибо работает только поменял пути

\\kvfoss\U1H0\IN на С:\U1H0\IN
\\kvfoss\U1H0\OUT на С:\U1H0\OUT

Так как запускал с локальной машины.

А можно както убрать что бы сообщение не писалось что файл не найден?
Просто пишет то что обработало и больше ничего такого.
0
1781 / 763 / 130
Регистрация: 09.04.2011
Сообщений: 1,325
22.08.2012, 18:06
Цитата Сообщение от Alex2581 Посмотреть сообщение
что бы сообщение не писалось что файл не найден?
попробуйте в сторочках 7,8 дописать 2>nul:
Windows Batch file
1
2
dir %source1% /a-d /b&&move /y %source1%\*.* %dest1% 2>nul
dir %source2% /a-d /b&&move /y %source2%\*.* %dest2% 2>nul
1
0 / 0 / 0
Регистрация: 03.11.2010
Сообщений: 15
23.08.2012, 12:25  [ТС]
Нет не вышло , показывает.
Но не смертельно.
Хотелось что бы просто показывало что оно обработало файл.
Спасибо большое и на том что есть. Хотя можно наверно запустить батник через задачник что бы выполняло запуск батника каждые 10 сек и будет скакать ))
Хотя красиво оно когда обрабатывает.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
23.08.2012, 13:21
Пару вариантов:
1) показывает полный путь:
Bash
1
2
2>nul dir %source1% /a-d /b>nul&&move /y %source1%\*.* %dest1%
2>nul dir %source2% /a-d /b>nul&&move /y %source2%\*.* %dest2%
2) Только имя файла:
Bash
1
2
2>nul dir %source1% /a-d /b&&>nul move /y %source1%\*.* %dest1%
2>nul dir %source2% /a-d /b&&>nul move /y %source2%\*.* %dest2%
3
1781 / 763 / 130
Регистрация: 09.04.2011
Сообщений: 1,325
23.08.2012, 15:10
Alex2581, вариант с использованием цикла
Windows Batch file
1
2
3
4
5
6
7
@echo off
set In=С:\IN
set Out=C:\OUT
:start
for /f "delims=" %%a in ('dir "%In%\*.*" /b/s 2^>nul') do move /y "%%a" "%Out%"
ping -n 1 -w 10000 192.168.254.254>NUL
goto :start
Пути измените на свои. Второй цикл добавить по аналогии.
2
0 / 0 / 0
Регистрация: 03.11.2010
Сообщений: 15
27.08.2012, 12:09  [ТС]
Пару вариантов:
1) показывает полный путь:
Этот Вариант Просто супер. Спасибо
0
0 / 0 / 0
Регистрация: 13.02.2014
Сообщений: 3
13.02.2014, 19:13
Доброго вечера и дня!
А что если в папке есть подпапка и в которой тоже есть нужный файл который тоже должен быть перенесен? Есть ли способ переноса файлов не только из основной директории но и её подпапок?
Заранее благодарен за ответ!
Кромм
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
13.02.2014, 23:18
Добрый вечер, Kromm.
Вам необходимо добавить ключ /s к команде dir
1
10 / 9 / 1
Регистрация: 12.06.2014
Сообщений: 259
06.09.2014, 17:14
Хм..у меня почему то ничего не переносит cmd висит и ничего не происходит

Добавлено через 22 минуты
Все работает! А есть вариант как сделать чтоб батник на панели задач не висел.а где нибудь к примеру в трее, и перед переносом архивировал файл?
0
0 / 0 / 0
Регистрация: 16.12.2018
Сообщений: 1
16.12.2018, 11:19
Windows Batch file
1
2
3
4
5
6
7
8
9
10
@echo off
set source1=\\kvfoss\U1H0\IN
set dest1=P:\U1H0\IN
set source2=P:\U1H0\OUT
set dest2=\\kvfoss\U1H0\OUT
:start
dir %source1% /a-d /b&&move /y %source1%\*.* %dest1%
dir %source2% /a-d /b&&move /y %source2%\*.* %dest2%
ping -n 1 -w 10000 192.168.254.254>NUL
goto :start
Здравствуйте. А можно сделать так, чтобы при переносе файлы получали порядковые номера? То есть в исходной папке появляется файл xyz.xxx и переносится в папку назначения с именем 001_xyz.xxx, потом 002_xyz.xxx и т.д.?
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
16.12.2018, 18:34
Цитата Сообщение от voldemarr Посмотреть сообщение
с именем 001_xyz.xxx, потом 002_xyz.xxx
принцип здесь можно посмотреть.
1
0 / 0 / 0
Регистрация: 22.03.2019
Сообщений: 10
03.04.2019, 12:54
А как в этом коде сделать, чтобы не один путь был, а несколько?

К примеру из Папки в Папку2, из Папки3 в Папку4, из Папки5 в Папку6 и тд.

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
@echo off
Setlocal EnableDelayedExpansion
Set From=C:\Desktop\Папка
Set To=C:\Users\Desktop\Папка2
 
if not exist "%To%" md "%To%"
 
chcp 1251>nul
Set LanguageFlag=true
 
for /f "delims=" %%A in ('dir /b /s /a "%From%\%Ext%"') do (
  if defined LanguageFlag (chcp 866>nul& Set LanguageFlag=)
  echo Found %%~A  
  Call :GetEmptyName "%To%" "%%~nxA" NewName
  Echo --^> %To%\!NewName!
  move "%%~A" "%To%\!NewName!" >nul
)
 
:GetEmptyName %1-Folder %2-FileName %3-Var.Return %4-Optional.System.Num
if "%~4"=="" (
    Set "NewFileName=%~2"
  ) else (
    Set "NewFileName=%~n2(%~4)%~x2"
)
if exist "%~1\%NewFileName%" (
    Set Num=%~4
    Set /A Num+=1
    Call :GetEmptyName "%~1" "%~2" "%~3" "!Num!"
  ) else (
    Set "%~3=%NewFileName%"
    Exit /B
)
Exit /B
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
03.04.2019, 21:51
Maksi1311, код у вас странный, возможно зацикливание, так как переход на одну и ту же метку повторный и с другими уже параметрами, но суть не в этом, вопрос-то ваш к чему, какой путь нужен, для чего?
0
0 / 0 / 0
Регистрация: 22.03.2019
Сообщений: 10
04.04.2019, 10:23
alpap, зацикливание я сделал. Возможно сделать такое, чтобы скрипт мониторил не одну папку и переносил ее в другую, а несколько папок, к примеру ( мониторит папку1, появился файл, переносит в папку2; мониторит папку3, появился файл, переносит в папку4 и тд) и все это в одном скрипте?


Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
@echo off
Setlocal EnableDelayedExpansion
Set From=C:\Users\Desktop\папка1
Set To=C:\Users\Desktop\папка2
 
:Start
 
if not exist "%To%" md "%To%"
 
chcp 1251>nul
Set LanguageFlag=true
 
for /f "delims=" %%A in ('dir /b /s /a "%From%\%Ext%"') do (
  if defined LanguageFlag (chcp 866>nul& Set LanguageFlag=)
  echo Found %%~A  
  Call :GetEmptyName "%To%" "%%~nxA" NewName
  Echo --^> %To%\!NewName!
  move "%%~A" "%To%\!NewName!" >nul
)
 
Goto :Start
 
:Pause
ping -n -w %1 192.168.254.254>NUL
 
:GetEmptyName %1-Folder %2-FileName %3-Var.Return %4-Optional.System.Num
if "%~4"=="" (
    Set "NewFileName=%~2"
  ) else (
    Set "NewFileName=%~n2(%~4)%~x2"
)
if exist "%~1\%NewFileName%" (
    Set Num=%~4
    Set /A Num+=1
    Call :GetEmptyName "%~1" "%~2" "%~3" "!Num!"
  ) else (
    Set "%~3=%NewFileName%"
    Exit /B
)
Exit /B
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
05.04.2019, 01:03
Цитата Сообщение от Maksi1311 Посмотреть сообщение
мониторит папку1
начнем с того что cmd не умеет мониторить папки, а во-вторых для ваших требований надо расписать еще кучу возможных условий
Цитата Сообщение от Maksi1311 Посмотреть сообщение
мониторит папку1, появился файл, переносит в папку2
а если не появился
а если появился еще один, все равно
Цитата Сообщение от Maksi1311 Посмотреть сообщение
мониторит папку3, появился файл, переносит в папку4
или параллельно и там и там переносить или только далее по первому файлу и т.д.
0
 Аватар для Black Widow
7 / 6 / 1
Регистрация: 25.03.2019
Сообщений: 49
05.04.2019, 06:51
Извините,
если задену чьи-то чувства верующих,
но это какой-то пещерный примитивизм - решать таким образом задачу отслеживания изменений в файловой системе.

Цитата Сообщение от alpap Посмотреть сообщение
начнем с того что cmd не умеет мониторить папки
Скорее всего, никто не умеет.
В Линуксе есть подсистема ядра inotify, в BSD и MacOS есть kqueue и в Windows что-то тоже должно быть.
Я где-то видела описание отслеживания в файловой системе NTFS Windows c помощью журнала событий USN.

В любом случае, чтобы эти возможности применить, придется что-то доустанавливать.

Добавлено через 3 минуты
больше всего ссылок на модули для языка Python.

Добавлено через 17 минут
быстро нашелся готовый пример и для Java.
0
 Аватар для KDE777
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
05.04.2019, 09:55
Цитата Сообщение от Black Widow Посмотреть сообщение
и в Windows что-то тоже должно быть
System.IO.FileSystem.Watcher

Цитата Сообщение от Black Widow Посмотреть сообщение
Скорее всего, никто не умеет.
Пример реализации на PowerShell - https://www.cyberforum.ru/post13396766.html

Добавлено через 4 минуты
Цитата Сообщение от Black Widow Посмотреть сообщение
В любом случае, чтобы эти возможности применить, придется что-то доустанавливать.
Начиная с Win7, PowerShell доступен из коробки, но не смотря на это, любители cmd уже 10 лет не хотят обращать на него внимания...
0
 Аватар для bidstrup
419 / 179 / 27
Регистрация: 11.03.2018
Сообщений: 771
05.04.2019, 10:18
Цитата Сообщение от KDE777 Посмотреть сообщение
Начиная с Win7, PowerShell доступен из коробки, но не смотря на это, любители cmd уже 10 лет не хотят обращать на него внимания...
Вряд ли причиной этого является только заскорузлость мышления пользователей, налицо странное поведение M$ в продвижении собственного продукта.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.04.2019, 10:18
Помогаю со студенческими работами здесь

Копирование из одной папки в другую случайных неповторяющихся файлов
дорогие форумчане, необходимо создать батник, который копирует из папки с файлами (более 1000 штук) 255 случайных неповторяющихся файлов....

Как переместить несколько заданных файлов из одной папки в другую?
Всем привет! Допустим, мне необходимо переместить файлы 1.pdf и 2.pdf в другую папку, как это сделать с помощью move? Чтобы не все файлы,...

Копирование файлов заданного типа с помощью команды copy из одной папки в другую
Вариант 3 Создайте командный файл копирования файлов заданного типа (с помощью ко- манды copy) из одной папки в другую. В качестве...

Перемещение всех файлов из каждой подпапки одной папки в другую папку и их переименование
Добрый день! Прошу помощи, нужен батник или скрипт, который перемещал бы файлы из C:\folder\date_folder -> C:\all_files . Есть...

Перенос из одной папки в другую с переименованием названия папки
есть массив mas статический, котрый имеет список папок, которые должны быть в дирректории С:\1 аименования папок в этом списке начинается...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru