Há algum tempo, adicionei um script que escrevi ao menu de contexto. Faz um tempo que não preciso dele, mantenho-o por perto. Hoje tentei usar novamente e não funcionou.
Incluí uma imagem do erro abaixo. O título e a primeira linha são o diretório que selecionei.
Eu sei com certeza que o caminho para o comando é válido e funciona conforme testei o script no prompt de comando.
O que posso fazer para corrigir esse erro? Isso ocorre no Windows 10, se isso mudar alguma coisa, e o comando é o seguinte:
python M:\Sped\python\Extract\extract.py "%1"
Responder1
Se você vir esse erro, é provável que o caminho da pasta esteja incorreto e/ou o menu de contexto do shell esteja tendo problemas com suas chamadas de script python.
Esta é uma abordagem que usei com sucesso para corrigir o erro.
Crie o arquivo de registromypthonprog.regarquivo semelhante a este:
[HKEY_CLASSES_ROOT\Folder\shell\mypythonprog]
@="mypythonprog"
"Icon"="C:\\Users\\winuser\\AppData\\Local\\Programs\\Python\\Python311\\python.exe ,0"
[HKEY_CLASSES_ROOT\Folder\shell\mypthonprog\Command]
@="c:\\\\mypath\\\\subfolder\\\\myprog.cmd \"%1\""
O nome do seu item de menu de contexto pode ser alterado demypthonprogpara o que você deseja usar, além de alterar o caminho do ícone, se necessário.
O caminho do arquivo de comando pode ser alterado para onde ele reside em seu sistema de arquivos (de preferência permanentemente).
Crie o arquivo cmdmeuprog.cmdsemelhante a isto:
"C:\Users\winuser\AppData\Local\Programs\Python\Python311\python.exe" "c:\mypath\subfolder\mypyprog.py" %1
O caminho do local do python deve ser alterado para onde você instalou o python.
Modifique o arquivo pythonmeupyprog.pysemelhante a isto:
def main():
# Check if a folder path is passed as an argument
if len(sys.argv) < 2:
print("Folder path not provided.")
sys.exit(1)
folder_path = sys.argv[1]
Isso torna o código python ciente do parâmetro de pasta que você está passando.