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

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

Ответить
Настройки темы
CMD/BAT - [решено] Пакетное преобразование данных с помощью cmd

Аватара для Tosyk

Старожил


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

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


ЕСТЬ: файлы с рсширением *.psr, они располагаются в разных папках и являются архивами.

ЕСТЬ: первая программа: psr-tool.exe, которая умеет дампить данные из *.psr в файлы *.tty командой:

psr-tool.exe test-file.psr

на выходе получается *.tty файл, его имя берётся программой из источника test-file.psr и может быть каким угодно.

ЕСТЬ: вторая программа: tty-tool.exe, которая преобразует параметры внутри *.tty файла командой

tty-tool.exe extracted-test01.tty converted-test01.tty -option

и записывает его в новый converted-test01.tty (это имя пишется вручную). extracted-test01.tty - файл источник, "-option" - дополнительные опции.


НУЖНО: чтобы бат-файл дампил программой psr-tool.exe файлы в папку имеющую имя конвертируемого файла:

test-file.psr дампился в test-file!

В папке test-file файлы с расширением *.tty конвертировались бы программой tty-tool.exe и на выходе получались бы файлы *.tty с теми же именами что и были, но уже конвертированные, исходные же *.tty удалялись бы.

Нужно очень, сам не могу предусмотреть и отладить весь процесс, сделать так сказать его универсальным.

Если нужно, я могу более детально описать схему.

Отправлено: 18:20, 12-11-2010

 

Аватара для Tosyk

Старожил


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

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


Код: Выделить весь код
For /F "Tokens=*" %%A In ('Dir /B /S *.psr') Do (
	MD "%%~dpnA" 2>nul&&psr-tool.exe "%%A"
	For %%B In (*.tty) Do tty-tool.exe "%%B" "%%~dpnA\%%B" -option
	Del /F /Q *.tty 2>nul
	psr-extractor.exe -e ""%%~dpnA"" "%%A"
	)

For /F "Tokens=*" %%D In ('Dir /B /S *.bin') Do (del %%D)
For /F "Tokens=*" %%C In ('Dir /B /S *.xml') Do (del %%C)
For /F "Tokens=*" %%F In ('Dir /B /S *.fsb') Do (del %%F)
Вот по такой схеме всё работает, я добавил ещё один инструмент, он распаковывает *.psr файлы полностью (psr-tool.exe дампит только определённый файл - *.tty)

Код: Выделить весь код
psr-extractor.exe -e ""%%~dpnA"" "%%A"
psr-extractor.exe работает так:

psr-extractor.exe -e <"путь для извлечения"> <сам файл *.psr>

Код: Выделить весь код
For /F "Tokens=*" %%D In ('Dir /B /S *.bin') Do (del %%D)
For /F "Tokens=*" %%C In ('Dir /B /S *.xml') Do (del %%C)
For /F "Tokens=*" %%F In ('Dir /B /S *.fsb') Do (del %%F)
Вроде как сделал, чтобы этими командами удалялись лишние файлы после распаковки программой psr-extractor.exe. Вроде работает.

Но есть проблема: если в пути есть пробелы, то psr-extractor.exe не работает.

Как это можно исправить?

Отправлено: 19:41, 25-11-2010 | #21



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

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


Аватара для El Sanchez

Ветеран


Contributor


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

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


Цитата Tosyk:
For /F "Tokens=*" %%D In ('Dir /B /S *.bin') Do (del %%D)
For /F "Tokens=*" %%C In ('Dir /B /S *.xml') Do (del %%C)
For /F "Tokens=*" %%F In ('Dir /B /S *.fsb') Do (del %%F) »
Tosyk, это все можно заменить на:
Код: Выделить весь код
Del /S /F /Q *.bin *.xml *.fsb 2>nul
Цитата Tosyk:
Но есть проблема: если в пути есть пробелы, то psr-extractor.exe не работает »
Вместо
Цитата Tosyk:
psr-extractor.exe -e ""%%~dpnA"" "%%A" »
нужно
Код: Выделить весь код
psr-extractor.exe -e "%%~dpnA" "%%A"
, т.е. не удваивайте двойные кавычки

Отправлено: 14:02, 26-11-2010 | #22


Аватара для Tosyk

Старожил


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

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


Цитата El Sanchez:
, т.е. не удваивайте двойные кавычки »
А я пробЫвал, но та же история! Файлы не распаковываются.

ДОБАВКА:
Причём если делать через командную строку (но не использовать полные пути) то всё работает даже если программа запускается с рабочего стола.

Последний раз редактировалось Tosyk, 27-11-2010 в 08:54.


Отправлено: 14:13, 26-11-2010 | #23



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2010 - Преобразование данных в Exel '2010 - ? Gowdin Microsoft Office (Word, Excel, Outlook и т.д.) 7 28-10-2010 17:27
CMD/BAT - Написание логов с помощью BAT | CMD registeruser1 Скриптовые языки администрирования Windows 8 22-05-2010 19:57
Доступ - [решено] Смена пароля с помощью cmd censored Microsoft Windows 2000/XP 2 25-11-2008 17:36
Решено | Управление с помощью cmd Traktorist Microsoft Windows 2000/XP 2 04-05-2006 17:14
Excel. не работает преобразование типов данных. deni5 Программирование и базы данных 2 26-01-2004 21:55




 
Переход