Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Переименование файлов

Ответить
Настройки темы
CMD/BAT - Переименование файлов

Новый участник


Сообщения: 28
Благодарности: 1

Профиль | Отправить PM | Цитировать


Для меня задача показалась нетривиальной, поэтому я создал новую тему, если есть ответ попрошу ткнуть носом и удалить тему.
В чем заключаеться задача:
Есть такой скрипт:
Цитата:
for /f "delims=" %%i in ('dir /b /a:-d C:\папка') do ("c:\Program Files\PDFCreator\PDFCreator.exe" /PrintFile="C:\папка\%%i" && echo %%i)
Он прекрасно работает и конвертирует файлы в pdf, но есть проблема:
Если в имени файла встречаються незнакомые для cmd символы он их подменяет на "?". Например "Імя" -> "?мя"
Сответсвенно внутренняя команда такого имени файла не находит.
Собственно вопрос как в названии файлов заменить эти "?" на "_" ?
На форуме множество примеров как заменить определенный символ на другой, но как заменить "непонятный для cmd символ" я к сожалению не нашел =(.
Вот скрипт подставляющий в название xml файлов "12345" как я понял
Цитата:
@echo off
set nabor=12345
set folder=C:\1

for /f "delims=" %%A in ('dir /b /a-d "%folder%\*%nabor%*.xml"') do (
ren "%folder%\%%A" "%nabor%.xml"
)
pause

Отправлено: 22:02, 27-06-2016

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата gremlintv2:
Если в имени файла встречаються незнакомые для cmd символы он их подменяет на "?". Например "Імя" -> "?мя" »
Символы знакомые, просто они отсутствуют в кодовой странице OEM/866, как я полагаю.

Цитата gremlintv2:
Собственно вопрос как в названии файлов заменить эти "?" на "_" ? »
Вам не надо ничего заменять.

Можно вообще не использовать «dir», а просто перебирать файлы. Можно попробовать делать смену кодовой страницы (например, на 1251 или 65001) до, и вобрат — после основного тела пакетного файла. Можно перейти к использованию WSH/PowerShell, что будет и более правильным.
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:13, 27-06-2016 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Новый участник


Сообщения: 28
Благодарности: 1

Профиль | Отправить PM | Цитировать


Спасибо нашел решение в соседней теме, и угадайте кто там помог с решением вопроса?
Вопрос закрыт нужно вначале файла изменить кодировку на:
chcp 1251
Большое спасибо Iska всегда выручаете своими ответами!

Отправлено: 23:38, 27-06-2016 | #3


Ветеран


Contributor


Сообщения: 2708
Благодарности: 1684

Профиль | Отправить PM | Цитировать


VBS-cкрипт
Код: Выделить весь код
Papka = "C:\папка"

Prog = """c:\Program Files\PDFCreator\PDFCreator.exe"" /PrintFile="
' Prog = """C:\Windows\System32\notepad.exe"" "

Set FSO = CreateObject("Scripting.FileSystemObject")
Set FSH = CreateObject("WScript.Shell")

If FSO.FolderExists(Papka) Then
    Set Fol = FSO.GetFolder(Papka)
    Set Files = Fol.Files
    For Each File In Files
        Filename = """" + Papka + "\" + File.Name + """"
        ErrRun = FSH.Run(Prog + Filename, 10, True)
    Next
End If

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:42, 27-06-2016 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Переименование файлов

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Переименование файлов Verilog Скриптовые языки администрирования Windows 4 10-12-2014 14:55
Переименование файлов B1010 Видео и аудио: обработка и кодирование 0 28-09-2014 11:38
CMD/BAT - Переименование файлов. gen0m.rsw Скриптовые языки администрирования Windows 1 15-10-2010 19:15
переименование файлов mask Программирование и базы данных 6 20-05-2003 00:53
Переименование файлов Pavelz Microsoft Windows NT/2000/2003 7 24-01-2003 10:32




 
Переход