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

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

Ответить
Настройки темы
CMD/BAT - [решено] Не могу передать полный путь %1 при использовании ""

Аватара для Tosyk

Старожил


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

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


Есть 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

подскажите в чём может быть дело

Отправлено: 08:51, 16-09-2012

 


Moderator


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

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


А так?
Код: Выделить весь код
@echo off
convert.exe "%~1" "%~dpn1.png"

Отправлено: 09:11, 16-09-2012 | #2



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

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


Аватара для Tosyk

Старожил


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

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


Petya V4sechkin, пробовал, результат такой:

если 1.tga находится в папке со скриптом то работает, но если 1.tga находится в другой папке, то скрипт говорит ошибку типа:

"d:\1.tga"

или (если 1.tga в папке d:\test file\)

"file\1.tga"

т.е. возвращает путь после пробела. странно всё это, может что-нибудь ещё есть?

Отправлено: 09:31, 16-09-2012 | #3



Moderator


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

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


convert.exe кривой: не поддерживает пути или кавычки?
Смотрите результат:
Код: Выделить весь код
@echo off
echo convert.exe "%~1" "%~dpn1.png"
pause
Разбирайтесь с синтаксисом конвертера (как указывать параметры).

Отправлено: 10:13, 16-09-2012 | #4


Аватара для Tosyk

Старожил


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

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


Цитата Petya V4sechkin:
Смотрите результат »
результат правильный:

Код: Выделить весь код
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

Отправлено: 10:49, 16-09-2012 | #5



Moderator


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

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


Цитата 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"
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:58, 16-09-2012 | #6


Аватара для Tosyk

Старожил


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

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


Цитата Petya V4sechkin:
Если convert.exe в той же папке, что и батник:

Код: Выделить весь код
@echo off
"%~dp0convert.exe" "%~1" "%~dpn1.png"
»
отлинчно, этого я не знал, теперь работает отлично!

p.s.: скажите есть ли возможно преобразовывать файлы перетаскивая на скрипт несколько за раз?
сейчас преобразуется только один из перетаскиваемых

Отправлено: 12:38, 16-09-2012 | #7



Moderator


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

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


Цитата Tosyk:
несколько за раз
Код: Выделить весь код
@echo off
for %%i in (%*) do "%~dp0convert.exe" %%i "%%~dpni.png"

Последний раз редактировалось Petya V4sechkin, 16-09-2012 в 17:08. Причина: упростил.

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

Отправлено: 14:07, 16-09-2012 | #8


Ветеран


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

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


Цитата Petya V4sechkin:
Последний раз редактировалось Petya V4sechkin, Сегодня в 17:08. Причина: упростил. »
Кстати — да. Я часто забываю о такой банальности вместо shift .

Отправлено: 20:15, 16-09-2012 | #9


Аватара для Tosyk

Старожил


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

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


Цитата Petya V4sechkin:
Код: Выделить весь код
@echo off
for %%i in (%*) do "%~dp0convert.exe" %%i "%%~dpni.png"
»
работает, а разве экранировать %%i не нужно?

Отправлено: 20:47, 16-09-2012 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Использование - "Положение об использовании ПО" и "Правила использования ПО" на предприятии netochka Лицензирование продуктов Microsoft 7 27-06-2013 09:01
Доступ - [решено] Как отменить твик реестра "Стать владельцем и задать полный доступ" Макар Microsoft Windows 7 2 10-02-2010 13:45
Разное - В меню "сервис" "свойства папки" не могу настроить скрытые файлы Antoni106 Microsoft Windows 2000/XP 1 15-12-2009 21:32
Самопроизвольно запрещаются права на "Полный доступ"/"Чтение" различных веток реестра xoomer Microsoft Windows 2000/XP 2 23-04-2007 10:29
Запретить/удалить пункт "Programs" ("Программы") из меню кнопки "Start" ("Пуск") submaster Microsoft Windows NT/2000/2003 5 13-09-2006 12:29




 
Переход