1

我制作了一个小脚本,这样我就可以在资源管理器(在 Windows XP 上)中选择一些文件,右键单击,然后发送到。该脚本最多可处理 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 个文件,并且命令按预期运行正常,但 >20 并且我得到“Windows 无法访问指定的设备、路径或文件。您可能没有适当的权限访问该项目。” 我已经检查并更改了权限,权限似乎不是问题。

4

1 回答 1

3

发送到使用与拖放相同的机制。构建了一个命令行,其中包含每个文件名的完整路径作为参数。最大行长度为 8191 字节。我想您有可能仅使用 21 个文件就达到了该限制,但这不太可能。

更有可能的情况是您可能遇到包含&和/或^字符的文件名。“拖放”/“发送到”存在一个错误,无法正确引用包含&or的文件名^。这是令人沮丧的,因为包含空格的名称被正确引用。

有关更多信息和可能的解决方案,请参阅“Droplet”批处理脚本 - 包含 & 符号的文件名。

于 2012-10-23T17:42:41.917 回答