
标题: [其他] 【已解决】怎样的bat运行就能用Notepad3_x64.exe打开路径是剪切板的文本?谢谢 [打印本页]
作者: yyz219 时间: 2025-3-5 11:32 标题: 【已解决】怎样的bat运行就能用Notepad3_x64.exe打开路径是剪切板的文本?谢谢
本帖最后由 yyz219 于 2025-3-6 07:47 编辑
::▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆
方法一(由ank运行:Notepad3_x64.exe):用Notepad3打开txt-好.bat- @echo off
- pause>nul 2>nul
- 隐藏批处理窗口.exe @ /HID
- 毫秒.com 50
- "%~dp0Alt + Shift + f9+运行.exe" %复制当前文本路径%
- exit
- ==============================================================
- 00Alt + Shift + f9+运行.ahk
- ;【复制当前文本路径,用Notepad3_x64.exe打开这个文本】
- ;【切换到中文输入法,否则不能识别中文路径】
- PostMessage, 0x50, 0, 0x0804, , A ; 0x0804 是 中文(简体)输入法 ID
- ;【Alt + Shift + f9(复制当前文本路径到剪切板)】
- Send, {Alt Down}{Shift Down}{f9 Down}{f9 Up}{Shift Up}{Alt Up}
- Sleep,100
- ;【Notepad3_x64.exe按照剪切板内容打开文本】
- notepadSan:=".\..\Notepad3_x64.exe "
- run,%notepadSan%%Clipboard%
复制代码
::▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆
方法二- @echo off
- pause>nul 2>nul
- 隐藏批处理窗口.exe @ /HID
- 毫秒.com 50
- "%~dp0Alt + Shift + f9.exe" %复制当前文本路径%
- for /f "delims=" %%a in ('mshta "JavaScript:new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(clipboardData.getData('text'));close()"') do set "当前文本路径=%%a"
- start "" "%~dp0..\Notepad3_x64.exe" "%当前文本路径%"
- exit
复制代码
==========================
原来问题:
用Notepad3打开txt-.bat:
@echo off
pause>nul 2>nul
"%~dp0Alt + Shift + f9.exe" %复制当前文本路径%
"%~dp0剪切板保存为文D:\记事本Notepad3\断剑留痕版特点.txt本.exe" /get >"%~dp0当前文本路径.txt" %保存当前文本路径%
set /p 当前文本路径=<"%~dp0当前文本路径.txt"
start "" "%~dp0..\Notepad3_x64.exe" "%当前文本路径%"
del "%~dp0当前文本路径.txt"
exit
======================================================
如果用Notepad2打开了一个“试一试.txt”,再运行“用Notepad3打开txt-.bat”,就能够用Notepad3再打开“试一试.txt”
=================================================================
问题:
1.这里需要使用一个“剪切板保存为文本.exe”,有一点累赘
2.这个过程需要一个临时文件“当前文本路径.txt”,不爽
需求:希望不使用“剪切板保存为文本.exe" 和 "当前文本路径.txt”也能够实现一样的效果
======================================================
说明:“Alt + Shift + f9.exe”是ahk的.exe,它的作用就是按Alt + Shift + f9.exe键,按“Alt + Shift + f9”就能够复制当前文本路径
作者: aloha20200628 时间: 2025-3-5 12:27
本帖最后由 aloha20200628 于 2025-3-5 12:52 编辑
回复 1# yyz219
notepad3.exe 有一个命令行参数 /c 即可在其启运时将当前剪贴板文本内容载入打开的 "test.txt" 编辑窗口(若是空文件则置顶,否则追加到文件末尾)...
直接在命令行启运以下代码- notepad3.exe /c /y "test.txt"
复制代码
作者: yyz219 时间: 2025-3-5 12:39
回复 2# aloha20200628
谢谢,我慢慢琢磨
作者: Five66 时间: 2025-3-5 19:49
ahk貌似有粘贴板变量 ,可以在按完Alt + Shift + f9键后直接用ahk运行Notepad3.exe
;按完Alt + Shift + f9键后
Sleep,500
notepadSan:="Notepad3_x64.exe"
run,%notepadSan%%Clipboard%
作者: yyz219 时间: 2025-3-5 21:04
回复 4# Five66
谢谢,我慢慢琢磨
作者: yyz219 时间: 2025-3-5 21:31
回复 4# Five66
提示:
Error: Failed attempt to launch program or document:
Action: <Notepad3_x64.exeD:\000\Alt + Shift + f9.ahk>
Params: <>
The current thread will exit.
Specifically: 系统找不到指定的文件。
Line#
002: Send,{Alt Down}{Shift Down}{f9 Down}{f9 Up}{Shift Up}{Alt Up}
003: Sleep,500
004: notepadSan := "Notepad3_x64.exe"
---> 005: Run,%notepadSan%%Clipboard%
005: Exit
006: Exit
006: Exit
作者: Five66 时间: 2025-3-5 21:37
回复 6# yyz219
额 , 漏了空格 ,exe后面加个英文空格
作者: yyz219 时间: 2025-3-5 21:41
回复 7# Five66
我找个时间再试一试 谢谢
作者: yyz219 时间: 2025-3-5 21:56
本帖最后由 yyz219 于 2025-3-5 22:30 编辑
回复 7# Five66
不能识别路径:(现在正常了,原来运行.ahk时,要切换到中文输入法)

作者: aloha20200628 时间: 2025-3-5 22:52
本帖最后由 aloha20200628 于 2025-3-5 22:57 编辑
回复 1# yyz219
如果用 Notepad3.exe 打开了某个文本文件(例如 a.txt),运行以下批处代码即可调用 Notepad3.exe 自动打开这个文本文件(即 a.txt)...- @echo off &for /f tokens^=1-4^delims^=^" %%a in (
- 'wmic process where "name='notepad3.exe'" get commandline /value^|find "=" '
- ) do (start "" "%%b" "%%d")
- exit/b
复制代码
确保在 notepad3.exe 的 ‘设置’ 菜单中取消勾选 ‘对每个文件仅允许单个实例’ ...
作者: yyz219 时间: 2025-3-5 22:54
Alt + Shift + f9+运行.ahk:
;【复制当前文本路径,用Notepad3_x64.exe打开这个文本】
;【切换到中文输入法,否则不能识别中文路径】
PostMessage, 0x50, 0, 0x0804, , A ; 0x0804 是 中文(简体)输入法 ID
;【Alt + Shift + f9(复制当前文本路径到剪切板)】
Send, {Alt Down}{Shift Down}{f9 Down}{f9 Up}{Shift Up}{Alt Up}
Sleep,100
;【Notepad3_x64.exe按照剪切板内容打开文本】
notepadSan:=".\..\Notepad3_x64.exe "
run,%notepadSan%%Clipboard%
作者: yyz219 时间: 2025-3-5 22:56
回复 10# aloha20200628
PE环境,没有wmic.exe 谢谢
作者: aloha20200628 时间: 2025-3-5 23:34
回复 12# yyz219
试试以下这个版本,存为 test.bat 运行...
如果用 Notepad3.exe 打开了某个文本文件(例如 a.txt),运行以下批处代码即可调用 Notepad3.exe 自动打开这个文本文件(即 a.txt)
确保在 notepad3.exe 的 ‘设置’ 菜单中取消勾选 ‘对每个文件仅允许单个实例’- 2>1/* ::
- @echo off &for /f "delims=" %%a in ('cscript /nologo /e:jscript "%~f0" ') do start "" %%a
- exit/b */
- w=GetObject('winmgmts:').instancesOf('win32_Process'), e=new Enumerator(w);
- while (!e.atEnd()) {
- i=e.item();
- if (i.name == 'Notepad3.exe') WSH.echo(i.commandline);
- e.moveNext(); }
- WSH.quit()
复制代码
作者: Five66 时间: 2025-3-6 00:59
回复 9# yyz219
试试换成Unicode版本的ahk
作者: yyz219 时间: 2025-3-6 07:43
回复 13# aloha20200628
谢谢
作者: aloha20200628 时间: 2025-3-6 09:43
回复 15# yyz219
本机没有 winPE 系统,但已从楼主得知其不支持 powershell,也不支持 wmic,如13楼代码中经 jscript 调用 win32 接口也不支持吗?若能走通,则一楼的原始诉求》
用Notepad2打开了一个“试一试.txt”,再运行“用Notepad3打开txt-.bat”,就能够用Notepad3再打开“试一试.txt”
解决起来就很简单了...
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |