Не могу передать полный путь %1 при использовании ""
Есть cmd файл:
Код:
@echo off
convert.exe "%1" "%~dpn1.png"
при перетягивании файла 1.tga на этот скрипт он выдаёт ошибку о неправильной команде (ошибка в пробеле), но если даже в пути не будет пробела то скрипт всё равно скажет о том, что команда "d:\1.tga" является ошибочной
однако, если я выполню команду в cmd.exe таким образом:
Код:
conv-script-to-png.cmd 1.tga
то команда выполнится и файл 1.tga конвертируется в 1.png
подскажите в чём может быть дело
|
Petya V4sechkin |
16-09-2012 09:11 1989467 |
А так?
Код:
@echo off
convert.exe "%~1" "%~dpn1.png"
|
Petya V4sechkin, пробовал, результат такой:
если 1.tga находится в папке со скриптом то работает, но если 1.tga находится в другой папке, то скрипт говорит ошибку типа:
"d:\1.tga"
или (если 1.tga в папке d:\test file\)
"file\1.tga"
т.е. возвращает путь после пробела. странно всё это, может что-нибудь ещё есть?
|
Petya V4sechkin |
16-09-2012 10:13 1989488 |
convert.exe кривой: не поддерживает пути или кавычки?
Смотрите результат:
Код:
@echo off
echo convert.exe "%~1" "%~dpn1.png"
pause
Разбирайтесь с синтаксисом конвертера (как указывать параметры).
|
результат правильный:
Код:
convert.exe "D:\test file\1.tga" "D:\test file\1.png"
Для продолжения нажмите любую клавишу . . .
но если уберу echo пишет:
Код:
Недопустимый параметр: file\1.tga"
Для продолжения нажмите любую клавишу . . .
что за ерунда?
Цитата:
Цитата Petya V4sechkin
Разбирайтесь с синтаксисом конвертера (как указывать параметры). »
|
для конвертирования нужен входящий файл и выходящий файл, входящий файл может быть любого поддержимаего формата (в моём случае .tga), выходйщий файл будет формата заданного мной (в моём случае .png)
так работает:
Код:
convert.exe 1.tga 1.png
|
Petya V4sechkin |
16-09-2012 10:58 1989503 |
Цитата:
Цитата Tosyk
что за ерунда?
|
convert.exe - команда операционной системы для конвертации файловой системы FAT в NTFS, лежит в папке \Windows\system32. Ваш convert.exe явно делает что-то другое. Указывайте путь к EXE-файлу:
Код:
@echo off
путь_к_утилите\convert.exe "%~1" "%~dpn1.png"
Если convert.exe в той же папке, что и батник:
Код:
@echo off
"%~dp0convert.exe" "%~1" "%~dpn1.png"
|
Цитата:
Цитата Petya V4sechkin
Если convert.exe в той же папке, что и батник:
Код:
@echo off
"%~dp0convert.exe" "%~1" "%~dpn1.png"
»
|
отлинчно, этого я не знал, теперь работает отлично!
p.s.: скажите есть ли возможно преобразовывать файлы перетаскивая на скрипт несколько за раз?
сейчас преобразуется только один из перетаскиваемых
|
Petya V4sechkin |
16-09-2012 14:07 1989610 |
Цитата:
Цитата Tosyk
несколько за раз
|
Код:
@echo off
for %%i in (%*) do "%~dp0convert.exe" %%i "%%~dpni.png"
|
Цитата:
Цитата Petya V4sechkin
Последний раз редактировалось Petya V4sechkin, Сегодня в 17:08. Причина: упростил. »
|
Кстати — да. Я часто забываю о такой банальности вместо shift :(.
|
Цитата:
Цитата Petya V4sechkin
Код:
@echo off
for %%i in (%*) do "%~dp0convert.exe" %%i "%%~dpni.png"
»
|
работает, а разве экранировать %%i не нужно?
|
Цитата:
а разве экранировать %%i не нужно?
|
,
Параметры при перетаскивании на батник и так передаются в кавычках, если есть пробелы, и с полным путем.
|
Цитата:
Цитата Tosyk
работает, а разве экранировать %%i не нужно? »
|
Ну, экранируйте:
Код:
… do "%~dp0convert.exe" "%%~i" "%%~dpni.png"
хотя в данном случае особого смысла нет.
|
Время: 05:43.
© OSzone.net 2001-