Windows 命令找不到脚本
Posted
技术标签:
【中文标题】Windows 命令找不到脚本【英文标题】:Windows command not finding script 【发布时间】: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 。谢谢您的帮助!您的回答帮助我解决了问题。
【参考方案1】:
添加双撇号并包含完整的 python 文件路径。以下对我有用:
@"C:\Users\MyName\AppData\Local\Programs\Python\Python37\python.exe" "C:\Users\MyName\Documents\test.py" %*
@pause
【讨论】:
我找到了解决问题的方法,感觉非常愚蠢。在命令文件中,我调用的是 .py 而不是 .bat 文件。不敢相信我花了几个小时修改代码并为此进行系统还原。感谢所有帮助过的人!如果其他人做了这个问题,如果 bat 文件以 * 而不是一个结尾(此信息未写在书中),该命令可能不起作用。错误代码:'@py.exe C:\Users\MyName\AppData\Local\Programs\Python\Python39\MyScripts\pw.py %*' 好代码'@py.exe C:\Users\MyName\AppData\Local \Programs\Python\Python39\MyScripts\pw.py %1' 很高兴听到您能够修复它!以上是关于Windows 命令找不到脚本的主要内容,如果未能解决你的问题,请参考以下文章