«start» не работает в bat-файле, когда используется как обработчик типов файлов в Firefox - PullRequest
0 голосов
/ 13 марта 2009

У меня есть пакетный файл (bat / cmd), который должен действовать как обработчик типов файлов для файлов jpeg в Firefox, я просто хочу, чтобы он скопировал файл в другую папку, а затем открыл файл в Picasa Viewer. Когда я запускаю его из командной строки, даже если я запускаю его из другой папки, он работает нормально и открывает Picasa Viewer. Однако при настройке его в качестве обработчика файлов JPEG в Firefox он только копирует файл, но не запускает Picasa.

Вот сценарий (я не пакетный программист, так что, возможно, это было бы намного проще, он был просто собран из различных сообщений stackoverflow ...):

set topath=%~DP0
copy %1 "%topath%"
@echo off

set picpath=%1
set picpath=%picpath:\=;%
set picpath=%picpath: =:%

for /F "tokens=* delims=;" %%i IN (%picpath%) DO call :LAST_FOLDER %%i
goto :EOF

:LAST_FOLDER
if "%1"=="" (
  set LAST2=%LAST::= %
  start explorer "%topath%"
  start "C:\Programfiler\Google\Picasa3\PicasaPhotoViewer.exe" "%topath%\%LAST2%"
  goto :EOF
)

set LAST=%1
SHIFT

goto :LAST_FOLDER

(Я также попытался открыть только проводник в папке, как показано выше.) Итак, кто-нибудь знает, почему ни проводник, ни Picasa не запускаются при запуске из Firefox, но оба запускаются из консоли? (Кроме того, проводник запускается при перетаскивании файла в сценарий, однако Picasa этого не делает ...)

Ответы [ 4 ]

1 голос
/ 20 августа 2009

Глядя на ваш код (Блин, есть ли способ скопировать / вставить с правильным выравниванием на этом сайте? :() что-то вроде этого может помочь:

jpgviewer.cmd

@echo off
set topath=%~dp0
copy %1 "%topath%"
set file=%~nx1
start explorer "%topath%"
start "-" "%Programfiles%\Google\Picasa3\PicasaPhotoViewer.exe" "%topath%%file%"

Надеюсь, это поможет.

% ~ nx0 : получает имя файла + ext заданной переменной (здесь 0) Жаль, что вы его не видели, это не то самое место, где вы получили ~ dp часть (справка для ).

1 голос
/ 22 марта 2009

Эту "особенность / ошибку" я видел несколько раз при использовании команды запуска.

Команда запуска интерпретирует первый параметр как «заголовок».

Просто попробуйте это, например: запустите "c: \ windows \ system32 \ calc.exe" "c: \ windows \ system32 \ notepad.exe"

Запустит блокнот, а не калькулятор

Итак, просто добавьте фиктивный параметр, например так: запустите "фиктивный заголовок" "c: \ windows \ system32 \ calc.exe"

Будет работать нормально ...

0 голосов
/ 13 марта 2009

Вы можете попробовать заменить start на cmd /c start. Может быть, это помогает.

0 голосов
/ 13 марта 2009

Я не прочитал это достаточно подробно, чтобы понять это, но ваш путь к Picasa выглядит неправильно, а не c: \ program files \, у вас есть c: \ programfiler \

НТН

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...