コンテキスト メニュー アプリケーションが見つかりません

コンテキスト メニュー アプリケーションが見つかりません

少し前に、コンテキスト メニューに自分が書いたスクリプトを追加しました。しばらく必要なかったのでそのままにしていました。今日、もう一度使用してみましたが、うまくいきませんでした。

以下にエラーの画像を添付しました。タイトルと最初の行は私が選択したディレクトリです。

コマンド プロンプトでスクリプトをテストしたところ、コマンドへのパスが有効であり、機能することが分かりました。

問題のエラー

このエラーを修正するにはどうすればいいですか? これは Windows 10 の場合で、コマンドは次のようになります。

python M:\Sped\python\Extract\extract.py "%1"

答え1

このエラーが表示される場合は、フォルダー パスが間違っているか、シェルのコンテキスト メニューで Python スクリプトの呼び出しに問題がある可能性があります。

これは、エラーを修正するために私が使用したアプローチです。

レジストリファイルを作成するマイプソンプログ次のようなファイル:

[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\""

コンテキストメニュー項目の名前は、マイプソンプログ必要に応じてアイコン パスを変更しながら、使用したいものに変更します。

コマンド ファイルのパスは、ファイル システム上の場所に変更できます (永続的に変更することをお勧めします)。

cmdファイルを作成するマイプログ.cmdこれに似ています:

"C:\Users\winuser\AppData\Local\Programs\Python\Python311\python.exe" "c:\mypath\subfolder\mypyprog.py" %1

Python の場所のパスを、Python がインストールされている場所に変更する必要があります。

Pythonファイルを変更するpyprog.py は、これに似ています:

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]

これにより、Python コードは渡されるフォルダー パラメーターを認識するようになります。

関連情報