Windows 上下文菜单运行隐藏的 xcopy

问题描述 投票:0回答:1

我正在尝试向 Windows 中的文件夹的上下文菜单添加一个新选项。我已成功添加该选项并指定其命令,如下所示:

xcopy.exe "%0\*" "c:\Destination\" /EHY

此代码已添加到 regedit.exe 中:

Snapshot here.

我在

c:
驱动器中有一个名为
Destination
的文件夹。我正在尝试将右键单击的文件夹复制到
Destination
文件夹,而没有命令提示符窗口。

xcopy 正在运行并在前台复制文件夹的 content。我怎样才能:

  1. 运行 xcopy 命令而不显示窗口。
  2. 将文件夹复制到
    Destination
    中以复制的文件夹命名的新文件夹。
windows cmd xcopy
1个回答
1
投票

满足列出的两个问题的命令在最后。首先,一些解释说明。

将 shell 命令添加到 Windows 注册表时,您可以使用多个变量(例如

%1
%L
%V
)。现在,您需要在
Destination
中创建一个以复制的文件夹命名的新文件夹。 参数扩展(例如
%~n1
)可以从完整路径中删除所有内容,并为您提供目录叶的名称。 但是,当使用 Windows 注册表中的 shell 命令时,这些功能不可用。获取普通目录名称的最直接方法是创建一个临时批处理脚本,运行它,然后删除该批处理脚本。

以下将把选定的目录复制为

Destination
中的子目录:

cmd.exe /c echo @echo off>"C:\Destination\_tempxcopy.bat" & echo xcopy "%%~1\*" "C:\Destination\%~n1" /ECIQHY ^>nul>>"C:\Destination\_tempxcopy.bat" & call "C:\Destination\_tempxcopy.bat" "%1" & del "C:\Destination\_tempxcopy.bat"

下一部分需要使用第三方实用程序。

上一个命令将打开一个命令窗口,并在复制过程中保持打开状态。要隐藏该窗口,请使用微型实用程序 RunHiddenConsole

以下将复制选定的目录并在复制时隐藏命令窗口:

"C:\Destination\RunHiddenConsole.exe" cmd.exe /c echo @echo off>"C:\Destination\_tempxcopy.bat" & echo xcopy "%%~1\*" "C:\Destination\%~n1" /ECIQHY ^>nul>>"C:\Destination\_tempxcopy.bat" & "C:\Destination\RunHiddenConsole.exe" /w "C:\Destination\_tempxcopy.bat" "%1" & del "C:\Destination\_tempxcopy.bat"

这当然可以变得更加灵活和高效,但上面的命令至少演示了完成任务的技术。

© www.soinside.com 2019 - 2024. All rights reserved.