求批处理固定用Photoshop.exe打开*.jpg图片的脚本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求批处理固定用Photoshop.exe打开*.jpg图片的脚本相关的知识,希望对你有一定的参考价值。

win xp打开图片的方式选择有:图画、图片和传真查看器、ACDsee、Photoshop等等。我想将默认方式始终固定为Photoshop方式,我自己设想的批处理方案是:
assoc .jpg=jpegfile
Ftype jpegfile"C:\Program Files\Adobe\Adobe Photoshop CS3\Photoshop.exe" ”%1”
exit
但运行后还是无法实现,而且好象”%”符号无法正常在DOS窗口写入.
请求各位大侠帮忙给个完整的BAT脚本.
——————————
首先,谢谢各位大侠和老师的热心解答,问题我自己已经解决了.其实善良的我们被Microsoft XP系统规则欺骗了,”jpegfile”并不是不可动摇的.jpg关联,用assoc ,Ftype语句和jpegfile转换设置只能将Adobe Photoshop 挂入win xp的打开图片可选关联序列之中,如将ACDsee、Photoshop或其他图片处理软件挂入文件关联等.至于优先用谁打开图片(即不选择打开方式,直接双击某个图片),要看该应用程序在注册表HKEY_CLASSES_ROOT中的位置,谁在前面就优先用谁.难怪有名的图片软件要冠名”ACD”Adobe”了!A的序列为先哈哈!基本方法是:
1、用assoc .jpg=字母排序靠前的关联名(如:AA.JPEGFILE)
2、在注册表HKEY_CLASSES_ROOT中建立一个名为[AA.JPEGFILE]的顶,并在其下面建立标准格式的[shell]目录(即带有[open]\[command]的目录.
3、对[open]\[command]目录进行默认值进行设置,如"C:\Program Files\Adobe\Adobe Photoshop CS3\Photoshop.exe" %1
这样就KO了。如果想在其他计算机使用就用合并的方式导出[HKEY_CLASSES_ROOT]下[.jpg]顶和[AA.JPEGFILE]顶,生成*.reg文件来直接运行
或做个bat来完成无提示导入*.reg就更具有意义了。谢谢各位老师了!

参考技术A 涉及到批处理的"预处理"问题 百分号 要写两个 而且都是半角符号
另外 格式是 ftype 文件类型=.......

Ftype jpegfile="C:\Program Files\Adobe\Adobe Photoshop CS3\Photoshop.exe" %%1

………………
那你运行 ftype jpegfile
看看结果是什么?
参考技术B 任意找一个jpg格式的图片,右键点属性,把打开方式改为photoshop即可 参考技术C set appPath=C:\Program Files\Adobe\Adobe Photoshop CS3\Photoshop.exe
reg delete HKCR\.jpg /f
reg delete HKCR\jpegfile /f
reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpg" /f >nul
assoc .jpg=jpegfile
ftype jpegfile="%appPath%" "%%1"
pause
参考技术D 给你个ps的动作,可以批处理打开照片

LeetCode 85最大矩形(第二遍)

题目链接

【题解】

首先 我们处理出来一个数组 a[i][j]. 这个数组的含义是,矩阵中(i,j)包括自身往上有多少个连续的1. 然后我们枚举行i. 表示我们现在要考察的矩阵的下边在第i行。 然后我们再处理出来一个一维数组heights[j] 其中heights[j] = a[i][j] 然后,问题就转化为在一个柱状图里面求一个最大的矩形了。用这个方法 做就行了。 枚举行O(N)的复杂度,柱状图求最大的矩阵也是O(N)的复杂度 因此这道题的时间复杂度为O(N^2)

【代码】

class Solution {
public:
    int maximalRectangle(vector<vector<char>>& matrix) {
        int n = matrix.size();
        int m = 0;
        if (!matrix.empty()) m = matrix[0].size();
        int a[500+10][500+10];
        for (int i = 0;i< n;i++){
            for (int j = 0;j < m;j++){
                if (i-1>=0 && matrix[i-1][j]==\'1\' && matrix[i][j]==\'1\'){
                    a[i][j] = a[i-1][j]+1;
                }else a[i][j] = matrix[i][j]-\'0\';
                //cout<<a[i][j]<<" ";
            }   
            //cout<<endl;
        }
        
        int top = 0,sta[500+10];
        int heights[500+10];
        int ma = 0;
        for (int i = 0;i < n;i++){
            for (int j = 0;j<m;j++){
                heights[j+1] = a[i][j];
            }
            top = 0;
            heights[0] = 0;
            for (int j = 1;j <= m;j++){
                if (top==0 || heights[sta[top]]<=heights[j]){
                    sta[++top] = j;
                }else{
                    while (top>0 && heights[sta[top]]>heights[j]){
                        ma = max(ma,(j-1-sta[top-1])*heights[sta[top]]);
                        top--;
                    }
                    sta[++top] = j;
                }
            }
            while (top>0){
                ma = max(ma,(m-sta[top-1])*heights[sta[top]]);
                top--;
            }
        }
        return ma;
    }
};

以上是关于求批处理固定用Photoshop.exe打开*.jpg图片的脚本的主要内容,如果未能解决你的问题,请参考以下文章

PhotoShopcs6 文件格式关联

bzoj1003题解

CMD下怎么用命令为某个文件指定打开方式?

用while语句求20的阶乘的和

LCA 在线倍增法 求最近公共祖先

java里Integer类在-128和127之间为啥能直接用==比较,好像还只能在自动装箱的时候是吗?求详解,谢谢啦!