滿足所列出的兩個問題的命令在最後。首先,解釋一些註釋。
將外殼命令添加到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"
這當然可以更加靈活和高效,但上面的命令至少演示了完成任務的技巧。
您知道您的命令無法正常工作,因爲您應該使用%L,%1或%〜1而不是%0。 – Compo