0 / 0 / 0
Регистрация: 26.08.2015
Сообщений: 3
1

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

26.08.2015, 12:34. Показов 13712. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!
Прошу помощи в решении такой не простой для меня задаче.
Имеется папка (А) с неким количеством файлов. Требуется перенести из этой папки n (например 10) файлов в папку B, и C. При этом в папку B должны попасть файлы 1-10, а в папку С 11-20. Все усложняется тем, что имена файлов самые разные. Тип файлов один.
Подскажите пожалуйста направление в котором стоит двигаться.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.08.2015, 12:34
Ответы с готовыми решениями:

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

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

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

Перенос из одной папки в другую
1с v77. Есть справочник с тремя уровнями. Есть элемент, который записан в папки Факультет-> Группа....

17
669 / 640 / 335
Регистрация: 26.04.2014
Сообщений: 2,122
26.08.2015, 15:05 2
Цитата Сообщение от Ctulhu Посмотреть сообщение
Подскажите пожалуйста направление в котором стоит двигаться.
Создать переменную со счётчиком, куда записывать количество перемещённых файлов.
Потом через условие if проверять число:
Visual Basic
1
2
3
4
5
6
7
If count >= 1 And count <= 10 Then
    ' перемещаем в папку Б
Else
    If count >= 11 And count <= 20 Then
        ' перемещаем в папку В
    End If
End If
0
0 / 0 / 0
Регистрация: 26.08.2015
Сообщений: 3
26.08.2015, 15:22  [ТС] 3
Спасибо за скорый ответ! Забыл указать что директорий, куда перемещаются файлы может быть более нескольких десятков. Можете подсказать как из n-ого количества файлов скопировать именно первые 10? Идея такая. Брать первые 10 файлов (порцию), копировать их в папку А. Затем брать следующую порцию файлов в папку B. И так далее. Разумнее, наверное, даже не копировать, а перемещать эти файлы, чтобы в цикле не пришлось их повторно перебирать.
0
669 / 640 / 335
Регистрация: 26.04.2014
Сообщений: 2,122
26.08.2015, 15:23 4
Цитата Сообщение от Ctulhu Посмотреть сообщение
Спасибо за скорый ответ! Забыл указать что директорий, куда перемещаются файлы может быть более нескольких десятков. Можете подсказать как из n-ого количества файлов скопировать именно первые 10? Идея такая. Брать первые 10 файлов (порцию), копировать их в папку А. Затем брать следующую порцию файлов в папку B. И так далее. Разумнее, наверное, даже не копировать, а перемещать эти файлы, чтобы в цикле не пришлось их повторно перебирать.
Через цикл For лучше сделать.
0
0 / 0 / 0
Регистрация: 26.08.2015
Сообщений: 3
27.08.2015, 13:08  [ТС] 5
Я тоже пришел к этому мнению. Получилось что то типа этого. Вопрос в том, как выбрать именно первые 10 файлов. Так то они не пронумерованы...
Windows Batch file
1
2
3
4
5
6
7
8
9
10
@echo off
SetLocal enabledelayedexpansion
set 
 
for /f "delims=" %%a in ('dir /b /a "C:\Work\Bat\A\*"') do (
if not "!flag!"=="10" (
copy /y "C:\Work\Bat\03\%%a" "C:\Work\Bat\B\"
set /a flag+=1
 
))

Добавлено через 49 секунд
Я тоже пришел к этому мнению. Получилось что то типа этого. Вопрос в том, как выбрать именно первые 10 файлов. Так то они не пронумерованы...
Windows Batch file
1
2
3
4
5
6
7
8
9
10
@echo off
SetLocal enabledelayedexpansion
set 
 
for /f "delims=" %%a in ('dir /b /a "C:\Work\Bat\A\*"') do (
if not "!flag!"=="10" (
copy /y "C:\Work\Bat\A\%%a" "C:\Work\Bat\B\"
set /a flag+=1
 
))

Добавлено через 1 минуту
Извиняюсь за путаницу. В первом случае указал не ту папку в операторе copy. не разобрался еще как тут редактировать сообщения.

Добавлено через 21 час 8 минут
Пришел к такому решению. Может кому пригодится. Тему можно закрыть, спасибо за помощь.
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
rem в моем случае помог ключ /ON -сортировка по имени . Как выяснилось, имена из чисел тоже сортируются. 
SET flag=0
for /F %%i in ('dir /ON /b /A-D C:\Work\Bat\A\*.*') do call :next C:\Work\Bat\A\%%i
goto :EOF
 
rem COUNT = задаем нужное кол-во перемещаемых файлов. 
:next
if [%flag%]==[%COUNT%] goto :EOF
 
SET /A flag=%flag%+1
move %1 C:\Work\Bat\B
0
0 / 0 / 0
Регистрация: 19.12.2015
Сообщений: 4
22.03.2016, 21:51 6
Здравствуйте Уважаемые!
Очень нужен этот скрипт...
Вот только не могу понять, куда именно вставлять число кол-ва перемещаемых файлов?
Ткните носом пожалуйста!
0
1780 / 762 / 130
Регистрация: 09.04.2011
Сообщений: 1,325
22.03.2016, 22:53 7
ArsMaxim, по последнему коду, количество перемещённых файлов задаётся в строке 8, например переместить 5 файлов
Windows Batch file
1
if [%flag%]==[5] goto :EOF
1
3461 / 1999 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
22.03.2016, 22:55 8
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
@echo off
setlocal
 
:: Устанавливаем нужное количество файлов для перемещения:
set n=10
 
:: Папка, из которой перемещаем файлы:
set "src=C:\Test 1"
 
:: Папка, в которую перемещаем файлы:
set "dest=C:\Test 2"
 
for /f "delims=" %%i in ('2^>nul dir /on /b /a-d "%src%"') do call :sub "%src%\%%i"
 
:exit
endlocal
goto :eof
 
:sub
     set /a i+=1
     if %i% leq %n% (move /y "%~1" "%dest%") else goto :exit
     exit /b 0
1
0 / 0 / 0
Регистрация: 19.12.2015
Сообщений: 4
23.03.2016, 00:37 9
Спасибо ComSpec!
Получилось!
Подскажите пожалуйста ещё...
Нужно, чтоб скрипт можно было закинуть в папку с файлами или рядом с папкой в которой файлы для сортировки,
запустить скрипт и чтоб он создавал папки в которые будет раскидывать файлы по указанному в скрипте кол-ву!?
А так получается, если нет конечной папки скрипт создаёт что-то не понятное...

Спасибо!
0
3461 / 1999 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
23.03.2016, 03:06 10
Цитата Сообщение от ArsMaxim Посмотреть сообщение
Нужно, чтоб скрипт можно было закинуть в папку,.. в которой файлы для сортировки, запустить скрипт, и чтоб он создавал папки, в которые будет раскидывать файлы по указанному в скрипте кол-ву!


Код:

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@echo off
setlocal
 
:: Устанавливаем нужное количество файлов для перемещения:
set n=5
 
for /f "delims=" %%i in ('2^>nul dir /on /b /a-d-h-s') do if "%%i" neq "%~nx0" call :sub "%%i"
 
endlocal
pause>nul
goto :eof
 
:sub
    set /a i+=1
    if %i% equ 1 set /a j+=1
    2>nul md %j%
    2>nul move /y "%~1" %j%\
    if %i% equ %n% set i=
    exit /b 0
.

Созданные папки будут иметь имена "1", "2", "3" и т. д.
2
0 / 0 / 0
Регистрация: 19.12.2015
Сообщений: 4
23.03.2016, 08:47 11
ComSpec Спасибо Большое!

Занимаюсь парсингом контента...
(Вдруг буду чем полезен, буду рад!
Скайп такой-же как здесь логин!)

Часто бывает, что нужно раскидать десятки тысяч, а то и сотни тысяч файлов по папкам...
А бывает, что стандартный проводник, даже не может открыть папку из-за кол-ва в ней файлов.

Премного Благодарен!
0
0 / 0 / 0
Регистрация: 19.12.2015
Сообщений: 4
24.03.2016, 16:59 12
Блин, да запары у меня с этим скриптом...
Есть такой, чтоб рядом с папкой положить, запустить и он, эту рядом папку, размельчил на указанное кол-во...
Признателен буду, Очень!
Чем смогу, - отблагодарю!
Спасибо!
0
6258 / 2099 / 334
Регистрация: 10.12.2013
Сообщений: 7,207
25.03.2016, 04:06 13
Цитата Сообщение от ArsMaxim Посмотреть сообщение
Признателен буду, Очень!
Чем смогу, - отблагодарю!
если не получается в этой ветке,
спроси в других,
их тут как в бразилии педров:
bash(cygwin), haskell, java, perl, powershell, python, ...
0
32 / 4 / 1
Регистрация: 04.05.2010
Сообщений: 146
01.10.2024, 18:45 14
классный скрипт!!!!


Цитата Сообщение от ComSpec Посмотреть сообщение
Код:
Windows Batch file
@echo off
setlocal
:: Устанавливаем нужное количество файлов для перемещения:
set n=5
for /f "delims=" %%i in ('2^>nul dir /on /b /a-d-h-s') do if "%%i" neq "%~nx0" call :sub "%%i"
endlocal
pause>nul
goto :eof
:sub
    set /a i+=1
    if %i% equ 1 set /a j+=1
    2>nul md %j%
    2>nul move /y "%~1" %j%\
    if %i% equ %n% set i=
    exit /b 0
а можно модифицировать этот шикарный скрипт в VBS или powershell, а то bat не хочет работать с не стандартными символами в именах файлов
0
6317 / 2746 / 1068
Регистрация: 06.06.2017
Сообщений: 9,333
01.10.2024, 21:48 15
Цитата Сообщение от griha09 Посмотреть сообщение
а можно модифицировать этот шикарный скрипт в VBS
Чего там шикарного? Это же банальщина со счётчиком. Да и что мешает самостоятельно? Есть же навык, видел.
В любом случае есть свои разделы для спроса. Хотя такого добра ещё 15 лет назад можно было найти на просторах навалом.
0
2065 / 649 / 275
Регистрация: 26.03.2022
Сообщений: 1,217
Записей в блоге: 1
01.10.2024, 23:01 16
griha09,
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
BoxIn = "Z:\Box_In"
BoxOut = "Z:\Box_Out"
Quant = 10
 
n = 1001: j = 0
With CreateObject("Scripting.FileSystemObject")
    Fout = BoxOut & "\" & Mid(n, 2): .CreateFolder Fout
    Set Fin = .GetFolder(BoxIn)
    For Each File In Fin.Files
        j = j + 1
        If j > Quant Then
            j = 1: n = n + 1
            Fout = BoxOut & "\" & Mid(n, 2): .CreateFolder Fout
        End If
        .MoveFile File.Path, Fout & "\" & File.Name
    Next
End With
MsgBox "Done"
Пути напишите свои. BoxIn и BoxOut могут совпадать.
0
6317 / 2746 / 1068
Регистрация: 06.06.2017
Сообщений: 9,333
01.10.2024, 23:18 17
Angry Old Man, никак руки чешутся? )) Он сам это умеет.
0
32 / 4 / 1
Регистрация: 04.05.2010
Сообщений: 146
02.10.2024, 16:16 18
Angry Old Man, ОГРОМНОЕ СПАСИБО!!!

FlasherX, небольшой навык у меня был, но уже забылся . А теперь на примере я могу поразбираться и повспоминать.
0
02.10.2024, 16:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.10.2024, 16:16
Помогаю со студенческими работами здесь

Перенос файла из одной папки в другую
Знаю, на форуме такие темы есть, но однозначного ответа не нашел. Известно имя файла, путь к...

Перенос файла из одной папки в другую
Здоров, в чем суть, у меня в папке с проектом есть папка Doc, там имеются файлы PDF, мне необходимо...

Перенос файла из одной папки в другую
Доброго всем вечера! Необходима программа, которая будет отслеживать появление файла в одной папке,...

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

Перенос некоторого количества файлов в другую директорию
Привет, ребят. Помогите, пожалуйста. Имеется, например, папка с 1500 файлами, необходимо чтобы...

Копирование файлов из одной папки в другую
Нужно скопировать все файлы из папки С:/zello в папку С:/zello2 Программу с самого начала до конца...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru