Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.85/74: Рейтинг темы: голосов - 74, средняя оценка - 4.85
obse
0 / 0 / 0
Регистрация: 31.07.2012
Сообщений: 5
1

Поиск по маске, копирование, переименование

31.07.2012, 11:45. Просмотров 13720. Ответов 28

Доброго времени суток Уважаемые.

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

Перечитал все темы и понял, что я ничего не понял. Пытался сам создать батник, но явно я в этом ничего не понимаю. Прошу помочь написать код для следующей задачи:
Бат-файл запускается с любого места на компе. Необходимо найти все файлы на компьютере (диски c,d,e,f,....) по маске (*.txt - маска будет меняться периодически ручками) и скопировать их на диск D:\test\, при этом надо учесть, чтоб повторяющиеся имена файлов переименовывались примерно так: doc.txt, doc(1).txt, doc(2).txt,......, а не заменялись файлы, и не копировалась повторно сама же папка D:\test\. Желательно, чтоб при запуске батника окно сворачивалось в панель задач.

Ну очень прошу, помогите с батничком. Спасибо отзывчивым.

Добавлено через 11 часов 16 минут
Вот попытался начать, но думаю у меня проблемы.
Windows Batch file
1
2
3
4
@echo off
md d:\test
xcopy /y /h "C:\, D:\, E:\, F:\ *.txt" "d:\test\"
pause
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.07.2012, 11:45
Ответы с готовыми решениями:

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

Поиск и копирование файла/ов по маске
Всем Доброго Времени Суток! Задачка вроде тревиальная, но я никак не могу...

Поиск файла по маске и копирование его на флешку
Вообщем, на диске D есть папка Рабочие_станции Рабочая станция %произвольно не...

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

Переименование файлов по маске
Подскажите пожалуйста, как переименовать файлы батником ...

28
Margulis
0 / 0 / 0
Регистрация: 28.08.2014
Сообщений: 2
28.08.2014, 07:18 21
Можете подсказать как переписать код так, чтобы поиск файлов по маске велся на на всех жестких дисках компьютера, а только на том диске, где находится сам bat файл?
0
ComSpec
3407 / 1951 / 628
Регистрация: 26.02.2014
Сообщений: 1,457
28.08.2014, 08:51 22
Цитата Сообщение от batrjan Посмотреть сообщение
подскажите, а если в маске необходимо указать несколько форматов, например: *.doc, *.docx, *.xls, *.xlsx
то поле
set mask=*.doc
как должно выглядеть?

Bash
1
set mask=".doc" ".docx" ".xls" ".xlsx"
17-ую строку заменить на строку
Bash
1
for /f  "delims=" %%i in ('call dir %%mask:.=%n%*.%% /a-d /b 2^>nul') do call :f3 "%n%" "%%~ni" "%%~xi"
.



Цитата Сообщение от Margulis Посмотреть сообщение
Можете подсказать как переписать код так, чтобы поиск файлов по маске велся на на всех жестких дисках компьютера, а только на том диске, где находится сам bat файл?

5-ую строку заменить на строку
Bash
1
call :f1 %~d0\
.
1
Margulis
0 / 0 / 0
Регистрация: 28.08.2014
Сообщений: 2
28.08.2014, 09:53 23
Спасибо! И еще вопрос. Как сделать так чтобы файлы по маске не копировались, а переносились в определенный каталог?

Добавлено через 39 минут
Вопрос снят. Сорри, туплю
0
martishz
0 / 0 / 0
Регистрация: 10.10.2014
Сообщений: 4
10.10.2014, 11:17 24
а что добавить в код чтоб он сам определил под какой буквой вставлена флешка?
ну типа чтобы руками не править bat файл не менять букву диска
0
Dragokas
Эксперт WindowsАвтор FAQ
17025 / 7082 / 856
Регистрация: 25.12.2011
Сообщений: 10,906
Записей в блоге: 16
10.10.2014, 11:25 25
http://www.cyberforum.ru/post6677276.html
0
martishz
0 / 0 / 0
Регистрация: 10.10.2014
Сообщений: 4
10.10.2014, 15:13 26
а что ты в коде изменил что он стал качать скрытые файлы а то у меня тоже он не качает
0
martishz
0 / 0 / 0
Регистрация: 10.10.2014
Сообщений: 4
10.10.2014, 15:25 27
короче использую вот такой код и он не копирует скрытые файлы

Bash
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
@echo off
set copyfolder=D:\test
set mask=*.txt
if not exist "%copyfolder%" md "%copyfolder%"
for /f "skip=1" %%i in ('wmic logicaldisk where drivetype^=3 get name') do call :f1 %%i\
goto :eof
:f1
for /r %1 %%j in (.) do call :f2 "%%j"
exit /b
:f2
set n=%~1
set n=%n:~0,-1%
echo %n%
if /i "%copyfolder%\" equ "%n%" exit /b
for /f "tokens=2 delims=\" %%q in ("%n%") do (set b=%%q)
if /i "%b%" equ "Recycled" exit /b
for /f  "delims=" %%i in ('dir "%n%%mask%" /a-d /b 2^>nul ') do call :f3 "%n%" "%%~ni" "%%~xi"
exit /b
:f3
set k=0
set fpath=%~1
set fname=%~2
set fext=%~3
if exist "%copyfolder%\%fname%%fext%" goto :f3_2
copy /y "%fpath%%fname%%fext%" "%copyfolder%\%fname%%fext%" 1>nul 2>nul
exit /b
:f3_2
set /a k=%k%+1
if exist "%copyfolder%\%fname%(%k%)%fext%" goto :f3_2
copy /y "%fpath%%fname%%fext%" "%copyfolder%\%fname%(%k%)%fext%" 1>nul 2>nul
exit /b
Он проходит мимо эти папки со скрытыми файлами
0
ComSpec
3407 / 1951 / 628
Регистрация: 26.02.2014
Сообщений: 1,457
10.10.2014, 17:51 28
Цитата Сообщение от martishz Посмотреть сообщение
не копирует скрытые файлы
martishz, замените в коде 25-ую и 30-ую строки, соответственно, на
Bash
1
echo f| xcopy /c/h/k "%fpath%%fname%%fext%" "%copyfolder%\%fname%%fext%" 1>nul 2>nul
и
Bash
1
echo f| xcopy /c/h/k "%fpath%%fname%%fext%" "%copyfolder%\%fname%(%k%)%fext%" 1>nul 2>nul
.
1
vitalia85
0 / 0 / 0
Регистрация: 09.09.2013
Сообщений: 12
14.10.2014, 09:11 29
Подскажите пожалуйста, а как сделать так, чтобы при копирование файлов например с папки c:\docs в папку с:\Архив проверялись имена файлов. Если они совпадают, файл с папки c:docs переименовывался например из text.doc в text_1.doc? Спасибо за ранее!
0
14.10.2014, 09:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.10.2014, 09:11

Переименование файлов по маске
Есть папка, в которой хранятся файлы с разным расширением. Нужно переименовать...

Групповое переименование файлов по маске
Доброго времени суток! В написании командных скриптов только разбираюсь....

Переименование группы файлов по маске
Здравствуйте, не нашел синтаксиса тонкостей работы с именами файлов. Задача: в...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru