2017-04-01 63 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" 

這當然可以更加靈活和高效,但上面的命令至少演示了完成任務的技巧。