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 命令找不到脚本的主要内容,如果未能解决你的问题,请参考以下文章

Bash 脚本在空行上打印“找不到命令”

高级反应脚本导致找不到命令

在 crontab 中运行脚本--reboot:找不到命令

找不到从 cronjob 命令运行的 bash 脚本

通过桌面图标运行 bash 脚本时找不到节点命令

Homestead:找不到命令 - Windows 10 - 尝试了一切