命令批处理脚本在上下文菜单中不起作用

时间:2014-03-26 03:24:23

标签: batch-file command windows-xp contextmenu

我有一个来自nt / xp的旧批处理脚本,它从Context Menu运行。它的作用是当我选择一个文件夹并运行cmd时,它将在我右键单击的活动文件夹中创建一个临时文件夹。然后将运行一个程序来转换原始文件夹中的所有tiff并输出新图像在临时文件夹中。我使用Windows 7的新功能,我在工作文件夹中打开CMD.exe时遇到问题。当我使用脚本并右键单击它时,它转到/windows/system32而不是我点击的文件夹。

这里是reg文件和批处理,以显示我想要做的事情:

REG文件:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Folder\shell\BW Comp/OV]
@="B&W Compress/OV"

[HKEY_CLASSES_ROOT\Folder\shell\BW Comp/OV\Command]
@="C:\\Program Files\\ISRU\\bin\\bwcov.cmd"

BATCH文件:

mkdir temp

FOR %%j in (*.tif) do mr_file -T -S 128 -C j -Q 3 -K g %%~nj.tif temp\%%~nj.tif

这是一个非常简单的设置,但现在使用窗口7,我无法在制作DIR或处理图像时使用批处理中的工作文件夹。

2 个答案:

答案 0 :(得分:0)

试试这个批处理文件:

@echo off
pushd "%~1"
mkdir temp
FOR %%j in (*.tif) do mr_file -T -S 128 -C j -Q 3 -K g "%%~nj.tif" "temp\%%~nj.tif"
popd

如果mr_file是批处理文件,则名称前需要call

此批处理文件也可以在SENDTO菜单中使用

但注册表文件对我来说很奇怪。

答案 1 :(得分:0)

Foxidrive,我尝试了你的建议,并且使用右键单击的文件夹创建临时文件夹。

以下是新文件。

批处理文件(我使用了一个名为make_pry而不是mr_file的新程序:

@echo on
pushd "%~1"
Title %~f1
mkdir temp
FOR %%j in (*.tif) do make_pyr %%~nj.tif -TIFF -JPEG -QFACTOR 97 -tile 128 -out temp\%%~nj.tif

和Reg File(这个文件也被更改了,这是我可以让mkdir命令批量工作的唯一方法。如果我删除%1,/ a或/ c它将不起作用:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Folder\shell\BWCOV]
@="BW Compress OV"

[HKEY_CLASSES_ROOT\Folder\shell\BWCOV\command]
@="cmd.exe /a /c Inpho_bwcov.cmd %1"