在Firefox中用作文件类型处理程序时,“start”在bat文件中不起作用

时间:2009-03-13 11:32:54

标签: windows firefox batch-file

我有一个批处理(bat / cmd)文件,它应该作为Firefox中jpeg文件的文件类型处理程序,我只是希望它将文件复制到另一个文件夹,然后在Picasa Viewer中打开该文件。当我从命令行运行它时,即使我从另一个文件夹运行它,它工作正常,并打开Picasa Viewer。但是,在Firefox中将其设置为jpeg文件的处理程序时,它只会复制该文件,但不会启动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 个答案:

答案 0 :(得分:1)

这个“功能/错误”我在使用启动命令时已多次看到。

start命令将第一个参数解释为“title”。

试试这个例子: 启动“c:\ windows \ system32 \ calc.exe”“c:\ windows \ system32 \ notepad.exe”

它将启动记事本,而不是计算器

所以简单地添加一个虚拟参数,如下所示: 启动“一些虚拟标题”“c:\ windows \ system32 \ calc.exe”

它会正常工作......

答案 1 :(得分:1)

查看你的代码(该死的,有没有办法在这个网站上复制/粘贴正确的对齐方式?:()这样的东西可能会有所帮助:

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)太糟糕了,你没有看到它,它不是你在samne的地方 ~dp 部分(的帮助)。

答案 2 :(得分:0)

我没有仔细阅读它,但是你的picasa路径看起来不对,而不是c:\ program files \你有c:\ programfiler \

HTH

答案 3 :(得分:0)

您可以尝试用start替换cmd /c start。也许这有帮助。