通过剪切板
选中文件的时候,Ctrl c复制的时候,剪切板内存在但前文件的完整路径
通过对完整的路径截取,来获取到需要的文件名
文件名的截取,可以通过正则表达式处理,也可以通过ahk的命令SplitPath来截取
-
效果
-
正则表达式
F2::
Clipboard := ""
Send, ^c
ClipWait, 1
FileName := RegExReplace(Clipboard,"`am)(^.+?)([^\\]+?)\.[^.]+$","$2")
MsgBox % "复制后剪切板内内容:`n" Clipboard "`n截取后的文件名:`n" FileName
Return
-
Splitpath
F2::
Clipboard := ""
Send, ^c
ClipWait, 1
loop, Parse, Clipboard, `n, `r
{
SplitPath, % A_LoopField, , , , xName
FileName .= xName "`n"
}
FileName := Trim(FileName,"`n")
MsgBox % FileName
Return
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
补到正则里面?
这个小白应该更容易理解
RegExReplace(StrSplit(path,””).Pop(),”..*$”,””)
RegExReplace(StrSplit(path,”\”).Pop(),”..*$”,””)
反斜杠被吃了,尴尬
回复区代码是有转义的问题
这个也不错
我上面就是写的比较直接,省的往里套东西了
你这个 \..* 要改改 \.[^.]+$
要不然文件名本身带点的就删了 比如
AutoHotkey_1.1.30.10.exe
就剩下1了
是的,没考虑到名称自身包含点的问题
赞赞赞