背景
以往复制文件的全路径可能会右键他的属性,然后复制他的地址和他的文件名,最难受不是根路径中间还要手动加斜线。
当然偶尔也会赋值资源管理器上面的路径加上F2全选赋值文件名,也不方便。
将复制文件名加到鼠标右键
注册表的添加
手动在HKEY_CLASSES_ROOT*\shell里新建项,然后新建commad项,command里面的值设置为脚本路径并且传参”%1”。
或者直接运行代码脚本注册。
reg代码:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\CopyFileName]
@="复制文件名"
"Icon"="F:\\Google Downloads\\erha.ico"
[HKEY_CLASSES_ROOT\*\shell\CopyFileName\command]
@="\"F:\\脚本Test\\复制到剪切板.bat\" \"%1\""
脚本实现
如果可以右键就复制他的全路径就非常优雅了,直接开始敲代码尝试。
C#版本:
using System;
using System.Windows;
namespace DesignPatterns
{
class Program
{
[STAThread]
static void Main(string[] args)
{
if (args.Length > 0)
{
Clipboard.SetText(args[0]);
}
}
}
}
比较简单,这里注意Clipboard必须用STAThread保证单线程进入。但是这样生成的exe不能直接修改,还要编译。
vbs版本:
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate("about:blank")
objIE.document.parentwindow.clipboardData.SetData "text", WScript.Arguments(0)
objIE.Quit
这个首先是比较容易被杀毒拦截,其次会弹出:
不优雅,最后选择的是:
bat/cmd版本:
@echo off
echo %~1%|clip
简洁的代码才优雅,最后看效果。
效果
右键点击的时候会有注册好的脚本,点击复制文件名。
复制成功。