2017-11-29 10 views
-1

Windows Server 2012 R2では、ターミナルから任意のPythonスクリプト(D:/App/applic.py)を実行可能にするにはどうすればよいですかディレクトリpythonも、.pyもファイル終了しませんか?このサーバーでは、私はすべてのユーザーが入力できるようにしたいと思います:Windowsサーバーのどこからでも(.py-file-endingのない)ターミナルプログラムとしてpython-scriptを実行する。

applic 2017 -v

のどこの端末で

python D:/Applic_dev/applic.py 2017 -v

を喚起するために、私はのpy2exe-種類を探していませんよソリューションは、Python 3はいつもサーバのになるためです。

PS。私のpythonスクリプトはplacを使ってコマンドライン引数を解析します。

+0

間違ったフォーラム?私は言うことができません。境界線の被写体。私が間違っていると私を修正してください。 – nJGL

+0

'function applic(){&python" D:/Applic_dev/applic.py "}'? – Clijsters

+1

Powershellのソリューションではありませんが、動作しているものはすべて取ると思います。 'applic.bat'という名前のバッチファイルを作成し、そこにPython呼び出しを含めることができます。 'py D:/Applic_dev/applic.py%*'となります。その後、 'application 2017 -v'を簡単に実行することができます。 ( 'py.exe'は通常Windowsのディレクトリにインストールされ、自動的にpythonの実行時間が選択されます) – Tomalak

答えて

0

保護された場所でのCMDファイルを作成します(ユーザーがそれを編集することができない場合)

が、これは保護されたパスを含めるようにPATH環境変数を編集して、ここから

@ECHO OFF 
REM This will be wherever the python executable is 
SET "PY=%PROGRAMFILES%\Pythonx.x\python.exe" 

REM This checks to see if the script is called without arguments 
IF [%*] EQU [] (
    @CALL %PY% "D:/App/applic.py" 
    EXIT /B 
) 
REM %* contains all arguments the script received 
@CALL %PY% "D:/App/applic.py" %* 
EXIT /B 

をapplic.cmd場所はです。

Automated PowerShell way

$ProtectedFolderLocation = 'C:\Windows\System32\Applic' 
$RegKey = 'HKLM:\System\CurrentControlSet\Control\Session Manager\Environment' 

$Path = (Get-ItemProperty -Path $RegKey).Path 
If ($Path[-1] -ne ';') { $Path += ";$ProtectedFolderLocation;" } 
Else { $Path += "$ProtectedFolderLocation;" } 

Set-ItemProperty -Path $RegKey -Name 'PATH' -Value $Path 

ユーザーがcmd.exeからapplicを呼び出すときに今、彼らは、上記のスクリプトを呼び出すことになります。

+0

はい、本当に!しかし...行 "PY =%PROGRAMFILES%\ Pythonx.x \ python.exe"は、 'PY ="%PROGRAMFILES%\ Pythonx.x \ python.exe "'になっているはずですが、完璧です。私はまた、私のapplic.pyへのコマンドを自動化する必要があります。そして、その '@ CALL applic something 'の行を、別の.cmd-fileがそのトリックをすることができるようにします。また、私はbashについてもう一度ひどく話すことはありません;)ありがとうございます。 – nJGL

+0

PS。私は手動でPATHを編集しました。 – nJGL

+0

@nJGLベストプラクティスは実際には引数全体を引用符で囲むことも述べていますが、パスに空白があることを忘れています:SET PY = "%PROGRAMFILES%\ Pythonx.x \ python.exe" " – TheIncorrigible1