2017-04-01 24 views
3

我想在Windows上的文件夹的上下文菜单中添加一个新选项。我已成功地添加如下的选项,并指定其命令:Windows上下文菜单运行隐藏xcopy

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

此代码被添加到REGEDIT.EXE

Snapshot here.

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

正在发生的事情:XCOPY运行和复制文件夹,并在前台的内容。请帮我解决这两个问题:

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

谢谢。

+3

您知道您的命令无法正常工作,因为您应该使用%L,%1或%〜1而不是%0。 – Compo

回答

0

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

将外壳命令添加到Windows注册表时,可以使用多个变量(例如%1,%L%V)。现在,您需要以复制文件夹命名的Destination中的新文件夹。 Parameter extensions(如%~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" 

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

相关问题