从Windows Server 2016上的任何地方运行Python-script作为终端程序(无需.py-file-d



在Windows Server 2012R2上,我该如何从任何目录的终端中执行特定的Python-script(D:/App/applic.py),而又不会既没有唤起python也没有.py文件终止?在此服务器上,我希望所有用户能够键入:

applic 2017 -v

终端中的任何地方都可以唤起

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

我不是在寻找解决方案的py2exe-kind,因为python 3始终是服务器上的

ps。我的python-script使用 plac来解析命令行参数。

在受保护的位置(用户无法编辑)创建一个CMD文件

applic.cmd

@ECHO OFF
REM This will be wherever the python executable is
SET "PY=%PROGRAMFILES%Pythonx.xpython.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

从这里编辑您的路径环境变量,以包括该受保护位置的路径。

自动powershell方式

$ProtectedFolderLocation = 'C:WindowsSystem32Applic'
$RegKey = 'HKLM:SystemCurrentControlSetControlSession ManagerEnvironment'
$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时,他们将调用上面指定的脚本。

最新更新