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

Изменить регистр в расширении файлов

09.04.2015, 11:22. Просмотров 4086. Ответов 20
Метки нет (Все метки)

Здравствуйте!
Не знаю, в том ли разделе разместил тему. Если не в том - не ругайте больно.

Суть вот в чем. Есть программа СБИС++ (электронная отчетность). И есть отчет, который в ней надо отправить. К отчету требуется при этом прикрепить несколько pdf-ных файлов.

Это присказка. А сказка вот в чем.
ОС - Windows 7 HB. Есть МФУ (Canon MF4410), который сканирует эти самые pdf-ки. НО! сканирует их так, что у pdf-ок расширение получается не *.pdf, а *.PDF. Казалось бы, в чем разница - для винды что малый регистр расширения, что большой - роли не играет. А вот СБИС++ такие файлы категорически отказывается признавать за pdf. Вот не тот регистр ему - и все тут. То же самое и с остальными файловыми расширениями - МФУ дает, к примеру, JPG, СБИС отказывается, признавая только jpg. Служба поддержки СБИС единственно что порекомендовала - заменять регистр расширения с помощью ТоталКоммандера. Каждый раз. При каждой отправке.

И вот вопрос: как в Windows 7 HB настроить МФУ так, чтобы он сохранял не PDF, а pdf? В какой, может, ветке реестра ковыряться надо?

(забегая вперед - да, в гугле искал. Гугль с такой проблемой, как выяснилось, еще не сталкивался. А может я плохо искал)

Заранее благодарен
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2015, 11:22
Ответы с готовыми решениями:

Запись в файл withx.txt имён файлов в каталоге Winnt на устройстве c:, в расширении которых вторая буква - x
г) Написать bat-файл, имена файлов в каталоге Winnt на устройстве c:, в расширении которых вторая...

Изменить регистр
Описать процедуру upCaseRus(S), преобразующую все строчные русские буквы строки S в прописные...

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

Изменить регистр символа
Почему не работает вот этот код: var a, b, c, d:char; begin read (a); b:=('A'); ...

Изменить регистр букв
Ребята, помогите пожалуйста дописать. Суть в том, что меняет верхний на нижний, а как сделать,...

20
gecata
Модератор
Эксперт HardwareЭксперт Windows
13732 / 6786 / 556
Регистрация: 03.01.2012
Сообщений: 27,820
09.04.2015, 11:44 2
Anton_R, А если в редакторе реестра: Найти (поставить галочку "С учётом регистра") .PDF или (.JPG) и посмотреть, имеет ли найденное отношение к проге сканирования МФУ. Если имеет - переписать соответственно на .pdf (.jpg)
0
Anton_R
1 / 1 / 0
Регистрация: 09.04.2015
Сообщений: 18
09.04.2015, 12:41  [ТС] 3
Цитата Сообщение от gecata Посмотреть сообщение
(поставить галочку "С учётом регистра")
Увы, в семерке почему-то такого нет ((( попробовал и на другой версии семерки - Профессиональная - и там тоже такая возможность (поставить галку) отсутствует. (((((
0
gecata
Модератор
Эксперт HardwareЭксперт Windows
13732 / 6786 / 556
Регистрация: 03.01.2012
Сообщений: 27,820
09.04.2015, 13:05 4
Anton_R, Н-дя. Полазала по реестру и настройкам сканирующей проги (у меня тоже МФУ Кэннон, только модель другая) - возможности изменить регистр там не предусмотрено. Во всяком случае, я не нашла... У меня одна идея - создать батник, который будет тупо переписывать расширения файлов в указанной ему папке...
3
09.04.2015, 13:05
Anton_R
1 / 1 / 0
Регистрация: 09.04.2015
Сообщений: 18
09.04.2015, 15:11  [ТС] 5
Цитата Сообщение от gecata Посмотреть сообщение
У меня одна идея - создать батник, который будет тупо переписывать расширения файлов в указанной ему папке...
Геката, а как его создать? с помощью чего?
0
gecata
09.04.2015, 15:14
  #6

Не по теме:

Anton_R, Я тему передвину в раздел по cmd. Может, там подскажут

0
ComSpec
3416 / 1959 / 629
Регистрация: 26.02.2014
Сообщений: 1,457
09.04.2015, 15:52 7
Цитата Сообщение от gecata Посмотреть сообщение
У меня одна идея - создать батник, который будет тупо переписывать расширения файлов в указанной ему папке...

gecata, хорошая идея.

Anton_R, код
Windows Batch file
1
@cd/d "%~dp0"& for /f "delims=" %%i in ('dir/a-d/b *.pdf') do  @ren "%%i" "%%~ni.pdf"
сохраните в текстовом файле, смените расширение этого файла на ".bat", поместите этот пакетный файл в папку с PDF-файлами и запустите, и, как говорится, будет Вам счастье.
2
Anton_R
1 / 1 / 0
Регистрация: 09.04.2015
Сообщений: 18
09.04.2015, 16:17  [ТС] 8
ComSpec
Спасибо )
А скажите, пожалуйста - единицу перед кодом тоже в текстовый файл или это просто номер строки?
0
ComSpec
3416 / 1959 / 629
Регистрация: 26.02.2014
Сообщений: 1,457
09.04.2015, 16:32 9
Anton_R, нет, конечно. Это просто номер строки, проставляемый для кодов при обычном использовании тегов кода. Есть вариант использования данных тегов для публикации кодов и без номеров строк:
Windows Batch file
@cd/d "%~dp0"& for /f "delims=" %%i in ('dir/a-d/b *.pdf') do  @ren "%%i" "%%~ni.pdf"
.
2
Anton_R
1 / 1 / 0
Регистрация: 09.04.2015
Сообщений: 18
09.04.2015, 16:42  [ТС] 10
Спасибо ) работает.

Правда, для этого - у нас же семерка, чтоб ее... - пришлось батнику в свойствах прописать "запуск в режиме совместимости с Windows XP" и "запуск от имени администратора". Только после этого прога с легкостью поменяла расширение всем файлам.

Еще раз всем большое спасибо )))
0
ComSpec
3416 / 1959 / 629
Регистрация: 26.02.2014
Сообщений: 1,457
09.04.2015, 16:55 11
Цитата Сообщение от Anton_R Посмотреть сообщение
"запуск от имени администратора"

Anton_R, я предчувствовал, что это может случиться, и ввёл в код команду
Windows Batch file
1
cd/d "%~dp0"
, которую обычно в кодах не пишут. Без неё бы не сработало...
1
Anton_R
1 / 1 / 0
Регистрация: 09.04.2015
Сообщений: 18
09.04.2015, 16:55  [ТС] 12
ой... рано обрадовался ((((
Переместил батник в другую папку - не работает. Или он только на определенную папку теперь рассчитан?
0
ComSpec
3416 / 1959 / 629
Регистрация: 26.02.2014
Сообщений: 1,457
09.04.2015, 17:17 13
Цитата Сообщение от Anton_R Посмотреть сообщение
пришлось батнику в свойствах прописать "запуск в режиме совместимости с Windows XP" и "запуск от имени администратора".

Anton_R, Вы же это прописывали не для самого пакетного файла, а, например, для его ярлыка, а ярлык "увязан" с предыдущим расположением пакетного файла. Просто запускайте его напрямую через пункт контекстного меню проводника "Запуск от имени администратора", а режим совместимости с Windows XP не нужен, поскольку код ничего "противоречащего" Windows 7, не содержит. У меня он и в Windows 8.1 работает.
1
Anton_R
1 / 1 / 0
Регистрация: 09.04.2015
Сообщений: 18
10.04.2015, 07:59  [ТС] 14
Цитата Сообщение от ComSpec Посмотреть сообщение
Anton_R, Вы же это прописывали не для самого пакетного файла, а, например, для его ярлыка,
Увы, как раз именно для файла ((((

Убирал и режим совместимости, и вновь его ставил, и "именем администратора" запускал... но уже не работает. Один раз сработал - и все ((((

Цитата Сообщение от ComSpec Посмотреть сообщение
У меня он и в Windows 8.1 работает.
Вот я и думаю - что у меня там не так? У меня - Win7Pro.
0
gecata
Модератор
Эксперт HardwareЭксперт Windows
13732 / 6786 / 556
Регистрация: 03.01.2012
Сообщений: 27,820
10.04.2015, 18:28 15
Anton_R, А как перемещали? "Вырезать"-"Вставить", или как-то иначе?
0
Anton_R
1 / 1 / 0
Регистрация: 09.04.2015
Сообщений: 18
13.04.2015, 10:14  [ТС] 16
Цитата Сообщение от gecata Посмотреть сообщение
Anton_R, А как перемещали? "Вырезать"-"Вставить", или как-то иначе?
Поначалу кинул в общую папку, надеясь потом воспользоваться на другом компе. Потом скопировал оттуда в ту папку, где хотел проверить. Проверил, получилось. Окрыленный, вырезал из уже этой папки и вставил в другую. И уже не получилось (((
0
Smitis
1630 / 339 / 41
Регистрация: 15.10.2012
Сообщений: 531
13.04.2015, 12:08 17
В той папке, где запущен, и подпапках, все латинские буквы в любых расширениях - в нижний регистр.
Windows Batch file
1
2
3
4
5
6
7
8
@echo off
setlocal enabledelayedexpansion enableextensions
cd/d "%~dp0"
for /r %%i in (*) do (
  set "x=%%~xi"
  set "x=!x:a=a!"&set "x=!x:b=b!"&set "x=!x:c=c!"&set "x=!x:d=d!"&set "x=!x:e=e!"&set "x=!x:f=f!"&set "x=!x:g=g!"&set "x=!x:h=h!"&set "x=!x:i=i!"&set "x=!x:j=j!"&set "x=!x:k=k!"&set "x=!x:l=l!"&set "x=!x:m=m!"&set "x=!x:n=n!"&set "x=!x:o=o!"&set "x=!x:p=p!"&set "x=!x:q=q!"&set "x=!x:r=r!"&set "x=!x:s=s!"&set "x=!x:t=t!"&set "x=!x:u=u!"&set "x=!x:v=v!"&set "x=!x:w=w!"&set "x=!x:x=x!"&set "x=!x:y=y!"&set "x=!x:z=z!"
  ren "%%~i" "%%~ni!x!"
)
1
volodin661
2313 / 1023 / 172
Регистрация: 10.12.2013
Сообщений: 3,455
13.04.2015, 13:32 18
Я правильно понял, что вопросу выполнения команды

Windows Batch file
1
rename *.PDF *.pdf
посвящено уже около 20 сообщений?
0
Eva Rosalene
Ladybug
4129 / 1602 / 305
Регистрация: 06.01.2013
Сообщений: 4,194
Завершенные тесты: 2
13.04.2015, 13:40 19
volodin661, вроде того
Anton_R, как именно не работает? Подпапки есть, в них не переименовывает?
0
ComSpec
3416 / 1959 / 629
Регистрация: 26.02.2014
Сообщений: 1,457
15.04.2015, 12:24 20
Тестировал код на большом количестве файлов. При количестве файлов от 3100 (более точное число не устанавливал, да это и не нужно, поскольку, думаю, что на других "машинах" это число может быть другим) после срабатывания пакетного файла никаких изменений в регистре расширений файлов не происхлдит. Иногда только у единичных файлов этот регистр меняется на нужный.

На самом же деле это только видимость: при обновлении окна проводника все файлы оказываются правильно переименованными.

Думаю, что ТС столкнулся именно с этим "феноменом".
4
15.04.2015, 12:24
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2015, 12:24

Изменить регистр символа
Измените регистр символа, если он был латинской буквой: сделайте его заглавным, если он был...

Изменить регистр текста
Помогите написать программу. Нужно прочитать из файла текст, изменить регистр символов на обратный...

Изменить регистр символа
Измените регистр символа, если он был латинской буквой: сделайте его заглавным, если он был...


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

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

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