使用批处理文件运行 python 脚本后出现“PermissionError: [Errno 13] Permission returned”

vin*_*ntr 3 python file-permissions runtime-error batch-file autostart

我正在使用 bat 文件在启动时运行 python 脚本。手动通过 CMD 运行脚本不会出现任何问题。但是,使用 bat 文件执行它会产生权限错误,其中脚本应该截取屏幕截图并保存它。

我尝试过使用不同的模块来拍照,认为这就是问题所在 - 但它没有帮助。我还授予了管理员权限,但这也没有帮助。

这是bat文件:

"C:\Users\name\python.exe" "C:\Users\name\run.py" pause
Run Code Online (Sandbox Code Playgroud)

这些是 python 代码中有问题的行:

image = ImageGrab.grab()
image.save('C:\\full\\path\\to\\screen.png')
Run Code Online (Sandbox Code Playgroud)

和错误:

PermissionError: [Errno 13] Permission denied: 'C:\\Path\\to\\screen.png
Run Code Online (Sandbox Code Playgroud)

期望代码通过批处理文件运行无错误,因为它是手动执行的。

谢谢。

The*_*ive 6

我在任务计划程序中遇到了同样的问题。我尝试了 / 和 \ 以及其他选项,但仍然有问题。对我有用的是 cd 进入 bat 文件内的目录。

以前,我的 .bat 文件很简单:

python "C:\path\to\some\directory\run.py"
Run Code Online (Sandbox Code Playgroud)

我将 .bat 文件更新为:

cd "C:\path\to\some\directory"
python run.py
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助遇到此问题的其他人。