|
本帖最后由 acalephe 于 2013-11-22 13:20 编辑
NIRCMD除了扩展DOS命令之外的一个好处是,用于批处理程序中以幽灵方式运行,没有什么痕迹,通过用NIRCMD结合批处理可以使注册表右键实现一键拷贝文件到某文件夹并运行。(对使用RAMDISK的特别爽,播放影音文件时在内存里操作而减小硬盘负载)。方法如下:
1. 若系统内无NIRCMD,下载并拷贝NIRCMD到c:\windows\system32目录下。
2. 在注册表内建立键值。(reg文件示例,与右键菜单原快捷键有冲突时去掉(&Z))
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\CopyRunIt]
@="复制到Y盘运行(&Z)"
[HKEY_CLASSES_ROOT\*\shell\CopyRunIt\command]
@="nircmd execmd C:\\WINDOWS\\GOtoY.BAT \"%1\""
*注意:注册表中的批处理路径不可加引号,否则无效,所以不要将要用到的批处理文件取个有空格的名字或放到有空格的目录下。
3. 编辑批处理文件,置于WINDOWS目录下(本示例批处理文件为gotoy.bat,目的是将任意文件拷贝到y:\software目录下运行):
@echo off&setlocal EnableDelayedExpansion
if exist "Y:\SoftWare\mld.txt" Del /f /q Y:\SoftWare\mld.txt
nircmd.exe clipboard set ""%1""
rem 此处必须用双双引号,否则目录或文件名中有空格时无法完整复制。
nircmd.exe clipboard addfile "Y:\SoftWare\mld.txt"
nircmd.exe clipboard clear
For /F "delims=/" %%i in (Y:\SoftWare\mld.txt) do Xcopy "%%i" Y:\SoftWare /D /Y
For /F "delims=/" %%a in (Y:\SoftWare\mld.txt) do start "" "y:\software\%%~nxa"
Del /f /q Y:\SoftWare\mld.txt
exit
本批处理的机制是利用nircmd的剪贴板功能,将文件路径写入一个文本文件再读取和操作,简单有效,在WINXP下成功。 |
|