我制作了一个小脚本,这样我可以在资源管理器(在WindowsXP上)中选择一些文件,右键单击,然后发送到。该脚本可以处理多达20个文件,但在选择21个或更多文件时失败。为什么&我该怎么解决?

:Loop
If "%~dpn1"=="" Goto :EOF
convert "%~dpn1.jpg" "%~dpn1_dvr_hires.tif"
convert "%~dpn1.jpg" -scale 150 -density 72 "%~dpn1_dvr_hires_renamed.jpg"
Shift
Goto Loop

当我拖放或使用sendto菜单时:20时,我得到一个“windows无法访问指定的设备、路径或文件。您可能没有访问该项目的适当权限。“我已检查并更改了权限,权限似乎不是问题所在。

最佳答案

发送到使用与拖放相同的机制。生成一个命令行,将每个文件名的完整路径合并为参数。最大行长度为8191字节。我想只有21个文件就有可能达到这个极限,但这是不太可能的。
更可能的情况是,您可能遇到包含&和/或^字符的文件名。“拖放”或“发送到”的错误无法正确引用包含&^的文件名。这是令人沮丧的,因为包含空格的名称被正确引用。
有关更多信息和可能的解决方案,请参见“Droplet” batch script - filenames containing ampersands

08-04 03:49