《Automate the Boring Stuff》第9章多剪贴板脚本mcb.bat运行无响应问题
问题排查与解决方案
- 首先确认pyw.exe可执行文件是否在系统环境变量PATH中
大部分情况下直接写pyw.exe系统无法找到对应程序,因为pyw是无窗口静默运行的程序,找不到执行文件时不会弹出报错提示。你可以先将bat文件内容修改为使用全路径的pyw.exe,示例如下(替换为你实际的Python安装路径):
也可以暂时将@"C:\Users\Dominik\AppData\Local\Programs\Python\Python310\pyw.exe" D:\PythonProjekt\AutomateBook\r9\mcb.pyw %*pyw.exe替换为python.exe,运行命令时会弹出控制台窗口,可以直接看到报错信息,方便定位问题。 - 确认bat文件所在目录是否加入系统PATH
你将mcb.bat放在C:\Users\Dominik目录下,如果该目录没有加入系统环境变量PATH,你在其他工作目录下直接输入mcb命令时系统无法找到该脚本。你可以将该目录加入PATH,或者每次运行命令前先cd到C:\Users\Dominik目录再执行命令。 - 修正shelve文件的路径为绝对路径
你代码中shelve.open('mcb')使用的是相对路径,shelve生成的文件会保存在你执行cmd命令时的当前工作目录,而非py文件所在目录,会导致保存的内容读取失败。将路径修改为py文件所在目录的绝对路径即可:mcbShelf = shelve.open(r'D:\PythonProjekt\AutomateBook\r9\mcb') - 确认依赖库已安装
运行该脚本需要安装pyperclip库,如果你没有安装过,执行如下命令安装即可:pip install pyperclip - 功能验证说明
该脚本的所有输出都是写入剪贴板,默认没有控制台输出:- 执行
mcb save xxx后,当前剪贴板的内容会被保存为键为xxx的条目 - 执行
mcb list后,所有已保存的键列表会被复制到剪贴板,你需要粘贴后才能查看内容 - 执行
mcb xxx后,键为xxx对应的内容会被复制到剪贴板,粘贴即可使用
- 执行
内容的提问来源于stack exchange,提问作者HGH
相关产品推荐
相关产品推荐

