Image 正在尝试将Magick转换为.Bat进行拖放

Image 正在尝试将Magick转换为.Bat进行拖放,image,batch-file,imagemagick,Image,Batch File,Imagemagick,因此,我有一个名为player0.bmp的320x320像素文件。我想剪切成32x32pixel.bmp文件。我可以运行cmd.exe提示符,将目录更改为文件的目录,并运行此命令 magick convert player0.bmp -size 320x320 -crop 32x32 player0-%02d.bmp 这个脚本工作正常,它将图像分解为我想要的内容。但是我希望避免在命令中更改数百个文件的文件名。是否有任何方法可以创建一个.bat文件来执行此操作,而无需更改脚本文件名和输出文件名

因此,我有一个名为
player0.bmp
320x320
像素文件。我想剪切成
32x32
pixel
.bmp
文件。我可以运行
cmd.exe
提示符,将目录更改为文件的目录,并运行此命令

magick convert player0.bmp -size 320x320 -crop 32x32 player0-%02d.bmp
这个脚本工作正常,它将图像分解为我想要的内容。但是我希望避免在命令中更改数百个文件的文件名。是否有任何方法可以创建一个
.bat
文件来执行此操作,而无需更改脚本文件名和输出文件名

我希望能够将
Item0.bmp
拖放到
.bat
文件中,并通过
Item0-99.bmp
将其吐出
Item0-01.bmp
,然后能够拖放
Item1.bmp
并通过
Item1-99.bmp
将其显示为
Item1-01.bmp


如果您能帮助制作此
.bat
文件,我们将不胜感激

我确实不使用Windows,也没有办法测试这一点,但是,好吧,当您将文件放到Windows批处理文件中时,它会将文件名作为参数接收,因此您可能需要以下内容:

magick "%~1" -size 320x320 -crop 32x32 "%~dpn1-%%02d.bmp"

因为我“认为”
%~dpn1
扩展到没有扩展名的全名。请只在非关键文件上尝试,因为我根本无法测试它。您可能还需要更多的错误检查,可能还需要处理多个文件名,这样您就可以在脚本中删除2个或更多文件…

我真的不使用Windows,也无法测试这一点,但是,顺便说一句,当您在Windows批处理文件中删除一个文件时,它会将文件名作为参数接收,因此,您可能需要以下内容:

magick "%~1" -size 320x320 -crop 32x32 "%~dpn1-%%02d.bmp"

因为我“认为”
%~dpn1
扩展到没有扩展名的全名。请只在非关键文件上尝试,因为我根本无法测试它。您可能还需要更多的错误检查,可能还需要处理多个文件名,这样您就可以在脚本中放置2个或更多文件…

此使用ImageMagick v7的Windows BAT脚本将拖放文件作为输入图像,将其裁剪成32x32像素的片段,并使用输入文件名加上三位顺序编号(如“inputfile_000.bmp”、“inputfile_001.bmp”、“inputfile_002.bmp”)写入输出文件

它首先更改为拖放输入图像的目录,然后将输出文件写入其中。您应该能够将输入文件放在实际的BAT文件上,甚至放在位于BAT脚本或输入图像目录以外的快捷方式上

注:在大多数情况下,在BAT脚本中需要倍增百分号


使用IMv7.0.10在Windows 10上对此进行了测试,通过将“magick”更改为“convert”,它也可用于IMv6.9.10。

此使用ImageMagick v7的Windows BAT脚本将拖放文件作为输入图像,将其裁剪为32x32像素块,并使用输入文件名加上三位数顺序编号写入输出文件,如“inputfile\u 000.bmp”、“inputfile\u 001.bmp”、“inputfile\u 002.bmp”等

它首先更改到拖放输入图像的目录,并将输出文件写入其中。您应该能够将输入文件拖放到实际的BAT文件上,甚至可以拖放到位于BAT脚本或输入图像目录以外的快捷方式上

注:在大多数情况下,在BAT脚本中需要倍增百分号



使用IMv7.0.10在Windows 10上测试了这一点,并将“magick”更改为“convert”“,它也适用于IMv6.9.10。

尽量避免使用
magick convert…
并仅使用普通
magick…
请参见此处以获取解释尝试避免
magick convert…
并仅使用普通
magick…
请参见此处以获取解释是的,
%~dpn1
是没有扩展的完整路径。无论如何,您应该使用
“%~1”
而不是
%1
来授予正确的报价。任何人都必须将
%%
-登录
%%02d
,这样一个这样的字符就会传递给
magick
命令…@aschipfl谢谢你纠正了我的错误。也许你可以检查我的编辑是否正确?谢谢,不客气!我无法测试它,因为我没有
magick
,但它看起来很正确…在Windows 10和IMv7.0.10上试用过。此命令另存为Windows BAT脚本,应完全按照预期工作。非常感谢您的帮助!是,
%~dpn1
是不带扩展名的完整路径。无论如何,您应该使用
“%~1”
而不是
%1
来授予正确的报价。任何人都必须将
%%
-登录
%%02d
,这样一个这样的字符就会传递给
magick
命令…@aschipfl谢谢你纠正了我的错误。也许你可以检查我的编辑是否正确?谢谢,不客气!我无法测试它,因为我没有
magick
,但它看起来很正确…在Windows 10和IMv7.0.10上试用过。此命令另存为Windows BAT脚本,应完全按照预期工作。非常感谢您的帮助!我很好奇为什么你选择通过改变目录来做这件事?你有时间解释一下吗?我有两个这样的实用程序脚本,桌面上有一个快捷方式,脚本在其他地方。当我从文件资源管理器窗口拖放到快捷方式上时,我希望命令更改为输入图像的目录,以便它在那里创建输出文件,而不是脚本或快捷方式所在的位置。哦,好的,谢谢。你知道我的版本是否有效吗?如果没有,我将删除它。我希望输入和输出路径将完全由我使用的参数来描述。Yessir。我将您的命令保存为“testme.bat”,并在其上放置了一个小图像。工作完全符合预期。非常好-非常感谢maki