2 / 2 / 0
Регистрация: 09.12.2015
Сообщений: 26
|
|
1 | |
Переименовать файлы с определенным расширением на нескольких жестких дисках23.04.2017, 12:40. Показов 1786. Ответов 15
Метки нет (Все метки)
Всем привет! Помогите разобраться чет не получается(
Суть такая: Нужен батник чтобы он находил все файлы с расширением .xml на нескольких жестких дисках (допустим С и D) и переименовывал их в db.xml (при этом если в одной папке больше таких файлов чем один то добавлял им цифру типо db.xml db1.xml db2.xml ... и т.д.) Заранее огромное спасибо!
1
|
23.04.2017, 12:40 | |
Ответы с готовыми решениями:
15
Переименовать файлы по маске на всех дисках Переименовать файлы в папке именем файла с расширением .swf Переименовать все файлы с расширением, указанным в параметре 1, в файлы с расширением, указанным в параметре 2 Вывод информации о существующих жестких дисках |
199 / 209 / 69
Регистрация: 09.02.2016
Сообщений: 1,040
|
|
23.04.2017, 20:05 | 2 |
Теоритически это выглядит наверно так.Надо сравнивать пути файла который переименовывается сейчас с путем предыдущего файла,и если они совпадают,то приписавать цифру.
0
|
2 / 2 / 0
Регистрация: 09.12.2015
Сообщений: 26
|
|
23.04.2017, 20:10 [ТС] | 3 |
а как в коде это реализовать?
0
|
199 / 209 / 69
Регистрация: 09.02.2016
Сообщений: 1,040
|
|||||||||||
24.04.2017, 00:07 | 4 | ||||||||||
Примерно так.Но он работает на всю глубину одного каталога
У меня нет желания проверять это на всем компе(Извините). Возможно для вашего варианта будет работать этот код: Для дисков C и D
1
|
2 / 2 / 0
Регистрация: 09.12.2015
Сообщений: 26
|
|
27.04.2017, 12:52 [ТС] | 5 |
Спасибо за ответ!
Но я проверил первый код но он не сработал( не поменял имя не одного файла( пробовал от админа и пихал сам батник с этим кодом в разные места тоже не помогло( а второй код срабатывает только на файлы в папках которые находятся на рабочем столе( независимо от куда запускаю батник, а от админа не сработал даже на файлы на рабочем столе( пробовал на Win 7 Макс x32 ХЗ может у меня руки крюки) Добавлено через 20 часов 44 минуты Можешь подсказать в чем проблема?
0
|
199 / 209 / 69
Регистрация: 09.02.2016
Сообщений: 1,040
|
||||||
27.04.2017, 13:02 | 6 | |||||
Сообщение было отмечено valli_vasia как решение
Решение
Я не знаю в чем проблема.ТАм путь указан каталога который проверять надо.Может быть Вы полность скопировали код и не менял ипуть,а может быть Вы не поменяли расширение docx на свое.ЧО угодно может быть.Это я про первый код где указана только одна папка.
Добавлено через 8 минут А во втором коде наверно ошибка есть.Попробуйте так.Надо поставить \ после двоиточая.ФОрум его почему то съедает.
1
|
2 / 2 / 0
Регистрация: 09.12.2015
Сообщений: 26
|
|
28.04.2017, 09:19 [ТС] | 7 |
Спасибо огромное добрый человек! добавил \ и все заработало)
Помоги еще чутка) у нас есть еще сетевые диски если народ будет туда скидывать файлы которые нужно переименовать то что во втором коде дописать чтобы и на них искал? Добавлено через 1 минуту Ой еще забыл спросить как добавить во втором коде переименовывание скрытых файлов? Очень благодарен за оказанную помощь!
0
|
199 / 209 / 69
Регистрация: 09.02.2016
Сообщений: 1,040
|
|
28.04.2017, 13:11 | 8 |
По такому же принципу?ф ф1 ф2?А переименовывать ,что скрытые что не скрытые в одно название?
0
|
4334 / 2124 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
|
||||||
28.04.2017, 16:23 | 9 | |||||
можно так:
0
|
2 / 2 / 0
Регистрация: 09.12.2015
Сообщений: 26
|
|
28.04.2017, 21:51 [ТС] | 10 |
Да чтобы просто код учитывал скрытые файлы в папке и менял в тоже название по порядку все.
0
|
199 / 209 / 69
Регистрация: 09.02.2016
Сообщений: 1,040
|
||||||
30.04.2017, 11:03 | 11 | |||||
Сообщение было отмечено valli_vasia как решение
Решение
Тестил на одном каталоге.Все работает.ВОт код на весь диск.Не тестил)Это вместе со скрытыми файлами.
чтоб Вас....Работает на весь диск....
1
|
2 / 2 / 0
Регистрация: 09.12.2015
Сообщений: 26
|
|
30.04.2017, 16:57 [ТС] | 12 |
0
|
199 / 209 / 69
Регистрация: 09.02.2016
Сообщений: 1,040
|
|
30.04.2017, 17:18 | 13 |
0
|
2 / 2 / 0
Регистрация: 09.12.2015
Сообщений: 26
|
|
30.04.2017, 17:48 [ТС] | 14 |
А почему не работает другой код вставленный после этого?
То есть создаю батник вот с таким содержимым: @echo off Setlocal EnableDelayedExpansion for %%a in (c:\,d:\) do (call :2 "%%a") exit /b :2 for /f "delims=" %%A in ('dir "%~1*.xml" /a:a /b /s') do ( call :1 "%%~dpA" ) exit /b :1 if "!b!"=="%~1" (exit /b) else (pushd "%~1"&&for /f "delims=" %%B in ('dir *.xml /a:a /b') do ( echo %%~aB|findstr h&&attrib -h "%%B"&&ren "%%B" "db!m!.xml"&&attrib +h "%%~dpBdb!m!.xml"&&set /a m+=1||ren "%%B" "db!m!.xml"&&set /a m+=1 ) ) set "b=%~1" set m= popd exit /b @echo off SetLocal EnableExtensions call :msg "Все файлы переименованы \nМожете запускать программу" Exit /B :msg chcp 866 >NUL& for /F "delims=" %%a in ("%~1") do chcp 1251 >NUL& call :convert "%%~a"& chcp 866 >NUL& Exit /B :convert set "text=%~1" (@for %%a in ("%text:\n=" "%") do @echo.%%~a) | msg * Exit /B И отрабатывает только первый код с переименованием а второй на вывод окна не срабатывает. Хотя по отдельности эти два кода в разных батниках работают на ура. Чет я совсем нуб(
0
|
199 / 209 / 69
Регистрация: 09.02.2016
Сообщений: 1,040
|
|
01.05.2017, 08:35 | 15 |
Сообщение было отмечено valli_vasia как решение
Решение
Попробуй в четвертой строке написать goto 3,а в своем коде уберите первые две строки и вместо них запишите :3
1
|
2 / 2 / 0
Регистрация: 09.12.2015
Сообщений: 26
|
|
01.05.2017, 11:38 [ТС] | 16 |
Спасибо огромнейшее!!! все заработало идеально!
0
|
01.05.2017, 11:38 | |
01.05.2017, 11:38 | |
Помогаю со студенческими работами здесь
16
Как вывести информацию о жестких дисках, подключенных к системе, в текстовый файл? На дисках появляются файлы с расширением exe и pif OpenFileDialog, отображать только файлы с определенным расширением Переименовать все файлы указанного каталога с расширением на заданную букву Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |