通常我需要将.exe文件从共享网络位置复制到本地驱动器上的固定目录。为了稍微加快这个过程,我想我会探索添加一个Context Menu选项,它会将所选文件复制到这个固定的本地文件夹。
决定通过向注册表添加一些键来启用针对.exes的相关上下文菜单选项并将此选项指向批处理文件,我似乎无法做出最后一步来复制当前选定的文件(或文件)到本地文件夹。
我理解批处理命令COPY语法,但我看到的所有示例都是将一个特定文件复制到另一个位置。我想用'当前选择'替换'一个特定文件';如果有人对如何通过批处理命令完成任何想法,我将不胜感激。
答案 0 :(得分:2)
如果从与.exe
文件关联的shell注册表项启动操作,则将对每个选定文件执行该命令(请参阅D.Ddgg's answer)
如果您希望/需要使用批处理文件来处理所选文件的列表,则可以使用Send To
菜单。创建批处理文件
@echo off
setlocal enableextensions disabledelayedexpansion
rem Test if there is something to copy
if "%~1"=="" exit /b
rem Congfigure the script
set "targetFolder=c:\somewhere"
rem Do the copy - Iterate over the argument list (the files)
for %%a in (%*) do copy "%%~fa" "%targetFolder%"
pause
并在Send To
文件夹中创建指向批处理文件的链接(在资源管理器的地址栏中输入shell:sendto
)
所选文件列表将作为单独的参数传递给批处理文件。您应该记住,命令行的长度存在限制,因此,如果文件列表需要超过8KB的字符(aprox),则其中一些不会被处理。
答案 1 :(得分:1)
cmd /k copy "%1" "c:\users\"
直接进入注册表。不需要批处理文件。
PS:您可以看到每个文件都是单独处理的。您无法在一次点击中获得所有选定文件。
除了op建议,我在编辑时其名称消失,sendto使用拖放。因此,您可以将批处理快速启动或放在桌面上,然后将文件拖放到一个页面中。