当我运行python脚本时,它运行bat文件。在我尝试锁定文件夹之前,这一切正常。我使用bat文件来解锁和锁定文件夹。我只是使用python脚本来运行bat文件。当我从文件资源管理器运行bat文件时,它可以正常工作,但是当我从python脚本运行它时,它会给出以下错误消息:
Access is denied.
File not found - Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}
Folder locked
最后一条消息说它已锁定,但文件夹未锁定。你知道吗
我使用以下两行代码从python脚本运行bat文件:
import subprocess
subprocess.call([r'filepath/FolderLocker.bat'])
当出现错误消息时,.bat
文件正试图运行这两行:
ren Locker "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
&
attrib +h +s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
我不完全理解命令提示符命令以及它们是如何工作的。 bat文件中的代码是:
cls
@ECHO OFF
title Folder Locker
if EXIST "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" goto UNLOCK
if NOT EXIST Locker goto MDLOCKER
:CONFIRM
echo Would you like to Lock the Folder(Y/N)
set/p "cho=>"
if %cho%==Y goto LOCK
if %cho%==y goto LOCK
if %cho%==n goto END
if %cho%==N goto END
echo Invalid choice.
goto CONFIRM
:LOCK
ren Locker "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
attrib +h +s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
echo Folder locked
goto End
:UNLOCK
echo Enter password to Unlock folder
set/p "pass=>"
if NOT %pass%==Password_Here! goto FAIL
attrib -h -s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
ren "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" Locker
echo Folder Unlocked successfully
goto End
:FAIL
echo Invalid password
goto end
:MDLOCKER
md Locker
echo Locker created successfully
goto End
:End
尝试删除
[ ]
并将filepath/FolderLocker.bat
替换为drive + full + path + bat
,使用完整路径:试试这个:
[
和]
"G:\SO_en-EN\Q59447409\Q59447409v.2.cmd"
1)要使用
attrib
文件夹,您需要添加标志/d
:2)不要使用
ren
,而是使用move
3)使用
if /i
表示大写/小写大小写4)将完整路径添加到
ren(move)
命令%cd%\Locker
相关问题 更多 >
编程相关推荐