我有一个批处理(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不会......)
答案 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
。也许这有帮助。