[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] 【已解决】怎样的bat运行就能用Notepad3_x64.exe打开路径是剪切板的文本?谢谢

本帖最后由 yyz219 于 2025-3-6 07:47 编辑

::▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆
方法一(由ank运行:Notepad3_x64.exe):用Notepad3打开txt-好.bat
  1. @echo off
  2. pause>nul 2>nul
  3. 隐藏批处理窗口.exe @ /HID
  4. 毫秒.com 50
  5. "%~dp0Alt + Shift + f9+运行.exe"  %复制当前文本路径%
  6. exit
  7. ==============================================================
  8. 00Alt + Shift + f9+运行.ahk
  9. ;【复制当前文本路径,用Notepad3_x64.exe打开这个文本】
  10. ;【切换到中文输入法,否则不能识别中文路径】
  11. PostMessage, 0x50, 0, 0x0804, , A ; 0x0804 是 中文(简体)输入法 ID
  12. ;【Alt + Shift + f9(复制当前文本路径到剪切板)】
  13. Send, {Alt Down}{Shift Down}{f9 Down}{f9 Up}{Shift Up}{Alt Up}
  14. Sleep,100
  15. ;【Notepad3_x64.exe按照剪切板内容打开文本】
  16. notepadSan:=".\..\Notepad3_x64.exe "
  17. run,%notepadSan%%Clipboard%
复制代码
::▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆


方法二
  1. @echo off
  2. pause>nul 2>nul
  3. 隐藏批处理窗口.exe @ /HID
  4. 毫秒.com 50
  5. "%~dp0Alt + Shift + f9.exe"  %复制当前文本路径%
  6. for /f "delims=" %%a in ('mshta "JavaScript:new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(clipboardData.getData('text'));close()"') do set "当前文本路径=%%a"
  7. start "" "%~dp0..\Notepad3_x64.exe" "%当前文本路径%"
  8. 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:52 编辑

回复 1# yyz219

notepad3.exe 有一个命令行参数 /c 即可在其启运时将当前剪贴板文本内容载入打开的 "test.txt" 编辑窗口(若是空文件则置顶,否则追加到文件末尾)...
直接在命令行启运以下代码
  1. notepad3.exe /c /y "test.txt"
复制代码
1

评分人数

TOP

回复 2# aloha20200628


    谢谢,我慢慢琢磨
我是小白,希望老师多多帮助

TOP

ahk貌似有粘贴板变量 ,可以在按完Alt + Shift + f9键后直接用ahk运行Notepad3.exe
;按完Alt + Shift + f9键后
Sleep,500
notepadSan:="Notepad3_x64.exe"
run,%notepadSan%%Clipboard%
1

评分人数

TOP

回复 4# Five66


    谢谢,我慢慢琢磨
我是小白,希望老师多多帮助

TOP

回复 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
我是小白,希望老师多多帮助

TOP

回复 6# yyz219


    额 , 漏了空格 ,exe后面加个英文空格
1

评分人数

TOP

回复 7# Five66


    我找个时间再试一试 谢谢
我是小白,希望老师多多帮助

TOP

本帖最后由 yyz219 于 2025-3-5 22:30 编辑

回复 7# Five66


    不能识别路径:(现在正常了,原来运行.ahk时,要切换到中文输入法)
我是小白,希望老师多多帮助

TOP

本帖最后由 aloha20200628 于 2025-3-5 22:57 编辑

回复 1# yyz219

如果用 Notepad3.exe 打开了某个文本文件(例如 a.txt),运行以下批处代码即可调用 Notepad3.exe 自动打开这个文本文件(即 a.txt)...
  1. @echo off &for /f tokens^=1-4^delims^=^" %%a in (
  2.    'wmic process where "name='notepad3.exe'" get commandline /value^|find "=" '
  3. ) do (start "" "%%b" "%%d")
  4. exit/b
复制代码
确保在 notepad3.exe 的 ‘设置’ 菜单中取消勾选 ‘对每个文件仅允许单个实例’ ...
1

评分人数

TOP

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%
我是小白,希望老师多多帮助

TOP

回复 10# aloha20200628


    PE环境,没有wmic.exe  谢谢
我是小白,希望老师多多帮助

TOP

回复 12# yyz219

试试以下这个版本,存为 test.bat 运行...
   如果用 Notepad3.exe 打开了某个文本文件(例如 a.txt),运行以下批处代码即可调用 Notepad3.exe 自动打开这个文本文件(即 a.txt)
   确保在 notepad3.exe 的 ‘设置’ 菜单中取消勾选 ‘对每个文件仅允许单个实例’
  1. 2>1/* ::
  2. @echo off &for /f "delims=" %%a in ('cscript /nologo /e:jscript "%~f0" ') do start "" %%a
  3. exit/b */
  4. w=GetObject('winmgmts:').instancesOf('win32_Process'), e=new Enumerator(w);
  5. while (!e.atEnd()) {
  6. i=e.item();
  7. if (i.name == 'Notepad3.exe') WSH.echo(i.commandline);
  8. e.moveNext(); }
  9. WSH.quit()
复制代码

TOP

回复 9# yyz219


    试试换成Unicode版本的ahk

TOP

回复 13# aloha20200628


    谢谢
我是小白,希望老师多多帮助

TOP

返回列表