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

Присвоение файлам из заданной папки имён папок, находящихся в одной директории с этой папкой

24.04.2016, 21:28. Показов 3468. Ответов 25
Метки нет (Все метки)

Возможно ли такое ? Например имеется 3 папки " папка 1 папка 2 папка 3 " в этом же катологе имеется папка под названием 1 в ней расположены 3 документа экселя, можно ли сделать так, чтобы названия папок заменили названия эксель документов? Соответственно эксель документы бы стали иметь имена папка 1 папка 2 папка 3, сразу сообще что в реальности таких документов примерно 240 в ручную делать долго.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.04.2016, 21:28
Ответы с готовыми решениями:

Надо запретить доступ к директории, кроме одной папки, которая в этой директории находиться
// это директория, ее тоже желательно закрыть // доступ закрыт // доступ закрыт // доступ закрыт // доступ закрыт //...

Копирование содержимого одной папки в другую с переименованием файлов и папок в случае совпадения имён
Добрый день! Необходимо решение следующей задачи: Есть папка OUT , находится к примеру "c:\out", внутри папки есть файлы и...

Как получить список имён файлов и папок находящихся в данном каталоге?
В матлабе есть какая-либо команда, позволяющая получить имена файлов и папок, находящихся в указанной папке? Поиски в интернете пока...

25
0 / 0 / 0
Регистрация: 24.04.2016
Сообщений: 30
28.04.2016, 09:44  [ТС]
alpap, Вроде все получилось, закачал нотпад++ сделал кодировку закинул туда изначальный код, вставил пути, и попробовал на эксель файлах, выяснилось, что если в названии эксель документов будет в конце стоять " - копия (1) " итд, то не сработает, пишет файл не удалось найти. это на винде 10, у меня же на 7 название не играет роли переименовывает любой.
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
28.04.2016, 12:59
Partes,
Т.е. на win10, такой код:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
@echo off
setlocal enabledelayedexpansion
set "d=papka"
set m=0
for /f "delims=" %%a in ('dir/a-d/b "%d%\*.xlsx"') do (
 set/a m+=1& set "nf!m!=%%a"& call :l "%%nf!m!%%"
)
pause
 
:l
 echo %~1
exit/b
не выводит имена.расширения excelевских файлов в папке "papka"? Это что-то новое. Ни в 1251 ни в 866, ну в 866 просто обязан. А команда:
Windows Batch file
1
dir/a-d/b "papka\*.xlsx">>"list.txt"
выводит имена в файл?
0
 Аватар для ComSpec
3464 / 2002 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
28.04.2016, 16:28
Лучший ответ Сообщение было отмечено ComSpec как решение

Решение

Partes, очевидно, у Вас в одном случае файлы имеют имена с символом - (например, абвгд - копия.txt), а в другом случае — с символом (например, абвгд — копия.txt).

Поскольку символ не воспринимается командами при выполнении пакетного файла в условиях кодовой страницы с номером 866 (кодовой страницы по умолчанию), то нужно сменить кодовую страницу на ту, в которой данный символ будет правильно отображаться, то есть на кодовую страницу с номером 1251 или с номером 65001.

Нужно изменять номер кодовой страницы командой CHCP, а сам пакетный файл ни в коем случае не сохранять в кодировке OEM-866.

Код:

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@echo off
setlocal
 
>nul chcp 1251
 
set "f1=E:\Test"
set "f2=E:\Test\Отчеты"
 
for /f "delims=" %%i in ('2^>nul dir/a-d/b "%f2%"') do (
 for /f "delims=" %%j in ('2^>nul dir/ad/b "%f1%"') do (
  for %%k in ("%f2%") do (
   if "%%~fj" neq "%%~fk" if not defined %%i if not defined %%j if not exist "%f2%\%%j%%~xi" (
    ren "%f2%\%%i" "%%j%%~xi"& set %%i=*& set %%j=*
   )
  )
 )
)
 
endlocal
exit/b
.
2
0 / 0 / 0
Регистрация: 24.04.2016
Сообщений: 30
28.04.2016, 18:55  [ТС]
ComSpec, Все верно, на win 10 стоят такие знаки "—" но я не понимаю, что нужно сделать с этим кодом, кодировку поменял на 1251 и все равно не переименовались.
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@echo off
setlocal enabledelayedexpansion
set "d=C:\rabpapka"
set "p_xlsx=otchet"
set m=0
for /f "delims=" %%a in ('dir/a-d/b "%d%\%p_xlsx%\*.gsheet"') do (
 set/a m+=1& set "nf!m!=%%a"& call :l "%%nf!m!%%"
)
exit
 
:l
 set n=0
 for /f "delims=" %%b in ('dir/ad/b "%d%"^|find/v "%p_xlsx%"') do (
  set/a n+=1
  if !m!==!n! ren "%d%\%p_xlsx%\%~1" "%%~b%~x1"
)
exit/b
0
 Аватар для ComSpec
3464 / 2002 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
28.04.2016, 18:59
Partes, я Вам код написал.
0
0 / 0 / 0
Регистрация: 24.04.2016
Сообщений: 30
29.04.2016, 10:56  [ТС]
ComSpec, спасибо огромное, все работает как надо !
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.04.2016, 10:56

Запись имен всех папок и файлов из выбранной директории в блокнот
Здравствуйте. Мне нужно чтобы из выбранной директории названия всех папок и файлов записывались в блокнот. Например на диске Д у меня 2...

Создание файла со списком имён всех папок в определенной директории, включая вложенные
Добрый день. Решил создать список, взяв все имена всех папок в определенной директории (включая вложенные) и поместить имена в виде...

Список файлов и папок в заданной директории
Всем здравствуйте. Скажите как получить дерево файлов и папок в заданной дериктории? И все это в двумерный массив засунуть из 3х столбцов,...

Получение имен файлов в директории по заданной маске
Можно ли это сделать налету с FileSystemObject, если, например, надо вывести все файлы в заданном каталоге которые начинаются на 'text_' и...

Как получить список папок в заданной директории
Подскажите как получить список папок в заданной директории (при этом имена файлов в список попадать не должны)?


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

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Новые блоги и статьи
[golang] Pipeline
alhaos 08.06.2026
Pipeline Pipeline — паттерн конкурентной обработки данных в Go. Суть: данные проходят через цепочку независимых стадий, каждая из которых работает в своей горутине и общается с соседями через. . .
Свет внутри себя
kumehtar 07.06.2026
Пусть это будет здесь lIs4oanZS9Y
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу. До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения Продолжаю серию постов о дискретно-событийной модели рабочего. . .
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru