我希望以 结尾的文件.fw.png
在 Adobe Fireworks 中打开,但我希望常规.png
文件在标准图像查看器程序中打开。
这可能吗?
答案1
使用AutoIt 脚本,以下应该可以执行您想要的操作:
$FIREWORKS = "C:/Program Files/Fireworks.exe"
$NORMALVWR = "C:/WindowsPictureViewer.exe"
If $CmdLine[0] > 0 Then
$toRun = ""
$fExt = StringRight($CmdLine[1], 7)
; First, we set $toRun as the proper target program to run.
If StringLen($CmdLine[1]) >= 7 And _
StringRight($fExt, 4) = ".png" And _
StringLeft(StringRight($fExt, 7), 3) = ".fw" Then
$toRun = $FIREWORKS
Else
$toRun = $NORMALVWR
EndIf
; Next, we append all command line arguments (with a space before each one).
For $i = 1 To $CmdLine[0]
$toRun &= ' "' & $CmdLine[$i] & '"' ; We surround each with quotation marks.
Next
; Finally, run the command in the current working directory.
Run($toRun, @WorkingDir)
; Since the Run() function is asynchronous, this program should close right after.
EndIf
为了使它适用于您的情况,您需要将顶部的这些常量更改为要启动的正确可执行文件。然后,安装 AutoIt,并将脚本编译为 .EXE 文件。将其放在一个方便的位置,并将 Windows 设置为使用此可执行文件打开 .PNG 文件。
我还没有测试过这段代码,但它看起来应该可以正常工作。仅供参考,编译后的程序将执行以下操作:
检查第一个参数(如果存在)是否以 .fw.png 结尾(假设您只运行以 .PNG 开头的可执行文件)。如果是,则启动 Fireworks 可执行文件,否则,启动普通查看器。
然后将所有命令行参数再次添加为相应应用程序的参数。
Run()
该应用程序通过 AutoIt函数在当前工作目录中调用。
如果有足够多的人感兴趣,我可以创建一个完整的程序来针对任意一组(嵌套的)文件扩展名执行此操作。