满足所列出的两个问题的命令在最后。首先,解释一些注释。
将外壳命令添加到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