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

[文件操作] bat 能否实现给F1-F10,快速粘贴设置好的路径?

本帖最后由 jack2020 于 2024-9-18 10:39 编辑

bat 能否实现给F1-F10赋值指定路径
多年一直用一个叫多功能剪切板的小软件,可以把电脑指定路径赋值给F1、F2、F3~F10,但是每次都要手动粘贴路径到软件窗口,有点麻烦。
然后每次在可编辑窗口按下F1或者F2,或者其他键,可以把预设的路径粘贴出来。

比如赋值:
F1路径为:C:\01_项目AA2024\15_广西ABC2024\03_AAA资料0914
F2路径为:D:\01_项目B2024\15_广西A2024\03_AA资料0914
F3路径为:E:\01_项目DDD2024\15_广西B2024\03_BCDEFG资料0914
按下键盘F1,自动把C:\01_项目AA2024\15_广西ABC2024\03_AAA资料0914 路径粘贴出来。
按下键盘F2,自动把D:\01_项目B2024\15_广西A2024\03_AA资料0914路径粘贴出来。
按下键盘F3,自动把E:\01_项目DDD2024\15_广西B2024\03_BCDEFG资料0914路径粘贴出来

求助大佬,能否用bat实现这一功能。
快速粘贴设置好的路径。

这里有原始代码,求会编程的大佬,重新编译一下,加写个ini配置文件可以自己读取ini文件,ini文本中可以自己手动修改F1-F10的地址,来实现这个功能?
多功能剪切板.e
多功能剪切板.e  源代码下载地址:
https://www.123pan.com/s/CTVA-40mIh

把文件保存为vbs,跟程序放一块运行即可。
  1. set ws = createobject("wscript.shell")
  2. ws.run ("多功能剪切板.exe")
  3. wscript.sleep 1000
  4. ws.appactivate("多功能剪切板")
  5. ws.sendkeys "c:\11" 'F1的快捷路径
  6. ws.sendkeys "~{TAB}"
  7. ws.sendkeys "c:\22" 'F2的快捷路径
  8. ws.sendkeys "~{TAB}"
  9. ws.sendkeys "c:\33"
  10. ws.sendkeys "~{TAB}"
  11. wscript.sleep 1000
  12. ws.sendkeys "% n" '输入完成,最小化多功能窗口
  13. wscript.quit
复制代码

TOP

回复 2# ppll2030

谢谢!
路径是普通的数字 英文路径可以识别,但是路径带这个汉字和下划线,识别为乱码,大佬可以修正一下吗?

比如这个路径:F1赋值   E:\01_项目2024\15_广西2024\03_资料0914
多功能剪切板识别为F1:   E:\01_/2024\15_2024\03_0914
文件夹带汉字的全掉了
vbs文本编码格式是ANSI,换其他格式启动不了。

TOP

sendkeys貌似send不了中文,只能将中文放进windows剪贴板,然后ctrl+v,不过这样也可能会出现很多其他问题(例如剪贴板数据可能不匹配和被替换,时间对不上会粘贴到上一次的内容)

TOP

回复 4# Five66

或者有没有其他bat代码实现这个功能,不用这个多功能剪切板软件 ,仅用  把F1-F10赋值10个不同的带汉字的电脑文件夹路径  启动BAT之后,按下F1或者其他键,可以粘贴出对应路径?

TOP

你说清楚,到底是要把路径输入到这个程序里,还是要把程序里已设置好的路径复制出来以便到其它地方粘贴?

QQ 20147578

TOP

本帖最后由 ppll2030 于 2024-9-14 15:31 编辑

把代码保存为bat文件,
地址列表就根据你自己的情况修改吧。
注意:16行的 more +21的数值一定要与地址列表行号对应。
  1. @echo off&setlocal enabledelayedexpansion
  2. (echo set ws = createobject("wscript.shell"^)
  3. echo N = WScript.Arguments(0^)
  4. echo ws.appactivate("多功能剪切板"^)
  5. echo wscript.sleep 500
  6. echo For i = 1 To N-1
  7. echo     ws.SendKeys "{TAB}"
  8. echo Next
  9. echo ws.sendkeys "^v"
  10. echo wscript.sleep 500
  11. echo ws.sendkeys "{TAB}"
  12. echo wscript.quit)>$.vbs
  13. start "" "多功能剪切板.exe"
  14. rem 注意 +21 这个数值与下面的 “地址列表:”的行数一致。否则取数会出错
  15. for /f "delims=" %%i in ('more +21 %~f0') do (
  16. set/a n+=1&echo %%i | clip &cscript //NoLogo $.vbs !n!
  17. )
  18. del $.vbs&exit/b
  19. 地址列表:
  20. E:\01_项目2024\15_广西2024\03_资料0914
  21. E:\02_项目2024\15_北京2024\03_资料0914
  22. E:\03_项目2024\15_西安2024\03_资料0914
复制代码

TOP

回复 6# czjt1234


    是后面一种

TOP

保存为1.bat, ANSI编码.
  1. <#*,:
  2. @echo off
  3. cd /d "%~dp0"
  4. set "batchfile=%~f0"
  5. Powershell -ExecutionPolicy Bypass -C "Set-Location -LiteralPath ([Environment]::CurrentDirectory);. ([ScriptBlock]::Create([IO.File]::ReadAllText($env:batchfile,[Text.Encoding]::GetEncoding(0) )) )"
  6. exit /b
  7. #>
  8. Add-Type -AssemblyName System.Windows.Forms, Microsoft.VisualBasic
  9. $proc = Start-Process -FilePath "多功能剪切板.exe" -PassThru
  10. [Microsoft.VisualBasic.Interaction]::AppActivate($proc.Id)
  11. # Start-Sleep -Milliseconds 1000
  12. [System.Windows.Forms.SendKeys]::SendWait("E:\01_项目2024\15_广西2024\03_资料0914") # F1的快捷路径
  13. [System.Windows.Forms.SendKeys]::SendWait("~{TAB}")
  14. [System.Windows.Forms.SendKeys]::SendWait("E:\22\01_项目2024\15_广西2024\03_资料0914") # F2的快捷路径
  15. [System.Windows.Forms.SendKeys]::SendWait("~{TAB}")
  16. [System.Windows.Forms.SendKeys]::SendWait("E:\33\中文abc") # F3的快捷路径
  17. [System.Windows.Forms.SendKeys]::SendWait("~{TAB}")
  18. Start-Sleep -Milliseconds 500
  19. [System.Windows.Forms.SendKeys]::SendWait("% n")
复制代码
微信:flashercs
QQ:49908356

TOP

回复 9# flashercs


    好像无法启动
多功能剪切板.exe

TOP

放弃小工具,直接用autohotkey可能比较简单 试着写了一个

  1. f1::send, E:\01_项目2024\15_广西2024\03_资料0914
  2. f2::send, E:\02_项目2024\15_北京2024\03_资料0914
  3. f3::send, E:\03_项目2024\15_西安2024\03_资料0914
  4. return
复制代码
bat小白,请多指教!谢谢!

TOP

回复 7# ppll2030


    +21是怎么看   这个路径 E:\01_项目2024\15_广西2024\03_资料0914中的数字和文字个数吗 能启动 好像没有自动填表呀

TOP

回复 11# 77七


    这个是什么语言,求具体用法?

TOP

回复 13# jack2020


   11楼蓝色字体链接,安装后把代码保存为 1.ahk,执行
bat小白,请多指教!谢谢!

TOP

win11_22h2 测试通过
  1. @echo off
  2. :loop
  3. set /p s=请输入一个数字,按回车键退出
  4. if %s%==1 goto :c1
  5. if %s%==2 goto :c2
  6. exit
  7. :c1
  8. set "s=E:\01_项目2024\15_广西2024\03_资料0914"
  9. mshta.exe vbscript:ClipboardData.SetData("text","%s%")(close)
  10. echo 已复制 %s%
  11. echo,
  12. goto :loop
  13. :c2
  14. set "s=E:\01_项目2024\"
  15. mshta.exe vbscript:ClipboardData.SetData("text","%s%")(close)
  16. echo 已复制 %s%
  17. echo,
  18. goto :loop
复制代码

QQ 20147578

TOP

返回列表