脚本通过windows sendto失败超过20项

时间:2012-10-23 16:13:22

标签: windows batch-file sendto

我制作了一个小脚本,因此我可以在资源管理器中选择一些文件(在Windows XP上),右键单击,然后选择Sendto。该脚本适用于最多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无法访问指定的设备,路径或文件。您可能没有相应的访问权限这个项目。“我检查过&更改了权限,权限似乎不是问题。

1 个答案:

答案 0 :(得分:3)

发送到使用与拖放相同的机制。构建命令行,将每个文件名的完整路径作为参数。最大行长度为8191个字节。我想你有可能只用21个文件达到这个限制,但这种可能性很小。

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

有关更多信息和可能的解决方案,请参阅“Droplet” batch script - filenames containing ampersands