【发布时间】:2021-05-05 04:35:31
【问题描述】:
我正在使用 Python 自动化无聊的东西一书中的密码锁项目。我需要创建一个脚本和一个 bat 文件来使用 Windows 命令运行该程序。运行命令时,Windows 通知我它找不到我的脚本(“pw”)并检查名称并重试。
脚本所在的文件夹已添加到Path系统变量文件夹中。
这是我的脚本文件(pw.py):
#! python3
# pw.py - An insecure password locker program.
PASSWORDS = {'email': 'f7nsdkfn2BDD3fkjTXjs6Fjsn',
'blog': 'fdkNc32NskNskKslLI321n',
'luggage': 12345}
import sys, pyperclip
if len(sys.argv) < 2:
print("Usage: python pw.py [account] - copy account password")
sys.exit()
account = sys.argv[1] # first command line arg is the account name
if account in PASSWORDS:
pyperclip.copy(PASSWORDS[account])
print("Password for " + account + " copied to clipboard")
else:
print("There is no account named " + account)
这是我的 bat 文件(MyName 是我的真名):
@py.exe C:\Users\MyName\AppData\Local\Programs\Python\Python39\MyScripts\pw.py %*
@pause
这里是我添加到系统和用户变量的路径文件夹:
C:\Users\MyName\AppData\Local\Programs\Python\Python39\MyScripts
C:\Users\MyName\AppData\Local\Programs\Python\Python39
你能帮我解决这个问题吗?谢谢!
【问题讨论】:
-
可悲的是,我相信你的混淆是罪魁祸首。
MyName实际上是否包含空格?如果是这样,或者在任何情况下,"quote the filename"即使用py.exe "C:\Users\MyName\AppData\Local\Programs\Python\Python39\MyScripts\pw.py" %*- 并且总是最好报告 precise(如果被混淆)错误消息 - 让我们免于猜测。 -
sys.exit()缩进不正确,我想。那不属于 if 子句吗? -
问题来自用户(我)。我在 Windows 命令中调用了我的 .py 文件而不是我的 .bat 。谢谢您的帮助!您的回答帮助我解决了问题。
标签: python windows batch-file command