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

回复 [url=http:bbs.bathome.net/redirect.php?goto=findpost&pid=284203&ptid=69763]12#[/url] jack2020



行数就是从代码第一行开始往下数的数字。
如果你灭有改动代码,直接复制保存的。
那就只要修改地址列表下的内容就可以了。

这个脚本还是往你的软件里填写路径而已,不是直接赋值给F1-F12
运行脚本, 可以启动你的软件,并自动往你的软件内一次填写F1-F12的地址内容,之后依然是你原来用法
地址内容就是脚本内的地址列表。

地址列表:
C:\01_项目AA2024\15_广西ABC2024\03_AAA资料0914           (F1路径)
D:\01_项目B2024\15_广西A2024\03_AA资料0914                   (F2路径)
E:\01_项目DDD2024\15_广西B2024\03_BCDEFG资料0914       (F3路径)
。。。。。。。。
以此类推
替换路径的时候,( )的内容不需要放到脚本里

TOP

回复 15# czjt1234

比如赋值:
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路径粘贴出来
   
我是想达到这个目的

TOP

我的批处理是数字键1234567890,不是F1F2...F10
批处理里举例说明的是按1和按2,在win7和win11测试通过,可以在其它地方粘贴指定的文本

难道你是要自动粘贴到其它地方?而不是自动复制+手动粘贴?

QQ 20147578

TOP

本帖最后由 aloha20200628 于 2024-9-14 16:50 编辑

回复 5# jack2020

用过资源管理器的 ‘复制路径’ 右键菜单吗
在资源管理器中任意选择多个路径后直接右键点击  ‘复制路径’ 即可将选择结果自动送入剪贴板以便后续粘贴...

TOP

回复 17# jack2020


我的理解是, 按 F1 后,会复制 程序中 F1 旁边的方框里的自己已经设置好的文本
然后你可以到其它地方手动粘贴

QQ 20147578

TOP

有空了,我还是再改一版吧,这个应该够简洁明了。
代码保存为run.bat,再新建一个空白的文本“地址列表.txt”,这两个文件跟你的多功能剪切板程序放在一起。
然后把你需要定义的F1-F10的路径直接复制到“地址列表.txt”文本里面。一行一个路径。
使用的时候直接运行run.bat,就可以自动把地址列表里的路径都自动添加到软件里,实现快速定义F1-F10了。
脚本在定义路径后,可以自动最小化程序,默认没开启,需要的自己改一下,去掉::就可以了。
  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. for /f "delims=" %%i in (地址列表.txt) do (
  15. set/a n+=1&echo %%i | clip &cscript //NoLogo $.vbs !n!
  16. )
  17. rem 地址粘贴完成,把软件最小化,需要的可以把::去掉
  18. ::mshta vbscript:execute("Set A=CreateObject(""WScript.Shell""):a.appactivate""多功能剪切板"":A.sendkeys(""%% n""):close")
  19. del $.vbs&exit/b
复制代码

TOP

回复 21# ppll2030
多谢大佬,按这个测试了两台电脑    run.bat  编码已经改成ANSI  
都是win10的  一台读取之后写入软件   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
代码是直接拷过来的  完全一样
不知道是不是缺字体
另外一台启动之后没有填表,运行run.bat之后启动了多功能剪切板,没有填表,
但是在根目录下生成1个$.vbs文件,打开内容如下:
set ws = createobject("wscript.shell")
N = WScript.Arguments(0)
ws.appactivate("多功能剪切板")
wscript.sleep 500
For i = 1 To N-1
    ws.SendKeys "{TAB}"
Next
ws.sendkeys "^v"
wscript.sleep 500
ws.sendkeys "{TAB}"
wscript.quit
   不知道是不是缺函数。

TOP

本帖最后由 ppll2030 于 2024-9-15 00:59 编辑

回复 22# jack2020


    第一个问题,把地址列表也保存为ANSI编码格式。
第二个问题,运行后不填入地址,试试切换输入法,让其在英文输入法状态下运行试试吧。毕竟是模拟输入,输入法状态影响还是有的。
$.vbs 是临时文件,主要就是模拟键盘输入Ctrl+v粘贴,和TAB切换框框,运行成功后就会自动删除。
还有,运行的时候,不要使用鼠标和键盘。否则也会使模拟输入失效,出现第二个问题。

TOP

回复 23# ppll2030


    第一台电脑,已经把地址列表已经保保存为ANSI编码格式。cup是12400,win10系统
   读取之后写入软件   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
代码是直接拷过来的  完全一样
不知道是不是缺字体



另外一台是i3 7500,win10系统
,输入法切换英文 中文都不填表。
不知道是不是缺函数


还是感谢大佬抽空写的代码,找不到原因,我还是手动填表拷贝吧  就是每次开机要重新拷贝一次。

TOP

本帖最后由 ppll2030 于 2024-9-18 11:05 编辑

回复 24# jack2020


    win10下同下,我能复现的原因就是图片所示。
所以还是再检查一下编码问题。
另一台机器不能复制,可能是系统精简过度?vbs脚本就没运行起来吧?

TOP

本帖最后由 ppll2030 于 2024-9-18 13:30 编辑

回复 24# jack2020


    如果修改编码格式不成功的,可以试试另一个办法。
把 多功能剪切板.exe 改为英文名字:MultiClipBoard.exe
把 地址列表.txt  改用英文名字:addlist.txt

然后复制下面的记事本,直接保存为bat文件即可。就用系统默认的UTF-8编码即可。addlist.txt也不用改编码,就用默认的。
  1. @echo off&setlocal enabledelayedexpansion
  2. chcp 936
  3. (echo set ws = createobject("wscript.shell"^)
  4. echo N = WScript.Arguments(0^)
  5. echo ws.appactivate("多功能剪切板"^)
  6. echo wscript.sleep 500
  7. echo For i = 1 To N-1
  8. echo     ws.SendKeys "{TAB}"
  9. echo Next
  10. echo ws.sendkeys "^v"
  11. echo wscript.sleep 500
  12. echo wscript.quit)>$.vbs
  13. chcp 65001
  14. start "" "MultiClipBoard.exe"
  15. for /f "delims=" %%i in (addlist.txt) do (
  16. set/a n+=1&echo %%i | clip &cscript //NoLogo $.vbs !n!
  17. )
  18. rem 地址粘贴完成,把软件最小化,需要的可以把::去掉
  19. ::mshta vbscript:execute("Set A=CreateObject(""WScript.Shell""):a.appactivate""多功能剪切板"":A.sendkeys(""%% n""):close")
  20. del $.vbs&exit/b
复制代码

TOP

提供一个,11楼小白版
1.下载autohotkey 地址 http://bcn.bathome.net/tool/AutoHotkey.exe
2.以下代码以 UTF-8 with BOM (带签名)编码,保存为 test.bat
3.将test.bat 和 autohotkey.exe 放在同一目录下,双击执行test.bat

  1. ;&cls &@echo off
  2. ;chcp 65001 >nul
  3. ;cd /d "%~dp0"
  4. ;start "" "AutoHotkey.exe" "%~f0"
  5. ;echo 注意:1.脚本编码 UTF-8 带签名& echo       2.在输入法英文状态下使用
  6. ;timeout 10
  7. ;exit
  8. f1::send, E:\01_项目2024\15_广西2024\03_资料0914
  9. f2::send, E:\02_项目2024\15_北京2024\03_资料0914
  10. f3::send, E:\03_项目2024\15_西安2024\03_资料0914
  11. return
复制代码
bat小白,请多指教!谢谢!

TOP

回复 26# ppll2030
这个改了英文的可以,但是三个带汉字的地址全部粘贴到了F1里面了   模拟输入需要TAB一下吧

另外一台电脑,不填表,
系统精简过度?vbs脚本就没运行起来吧。需要安装什么VBS包吗还是必须重做系统。

奇怪2台电脑是一个系统镜像,都是安装WIN10专业版,咋底层数据库不同,难道跟主板cpu有关?

TOP

回复 27# 77七


    谢谢 autohotkey打不开呀

TOP

回复 29# jack2020


   按步骤就行。(这个不用安装。)
bat小白,请多指教!谢谢!

TOP

返回列表