获取.bat fi中存在的环境变量

2024-06-01 22:48:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个脚本应用程序,它运行一个.bat文件,并每隔x天定期备份计算机上的文件。它非常简单,我使用它的程序,没有很好的备份功能了。你知道吗

在下面的示例中,我在.bat文件中设置了一个或多个环境变量,然后在调用python脚本时在列表中调用它们。你知道吗

我的代码:

set LIGHTROOM_PROGRAMDATA=ProgramData\Adobe\Lightroom
set LIGHTROOM_PICTURES=Some_User\Pictures\Lightroom
set LIGHTROOM_APPDATA=Some_User\AppData\Roaming\Adobe\Lightroom
set LIGHTROOM_DB_BACKUP=Some_Backup_Location

python path_to_python_script\software_backup.py -s %LIGHTROOM_PICTURES% %LIGHTROOM_APPDATA% %LIGHTROOM_PROGRAMDATA% -d %LIGHTROOM_DB_BACKUP%

其中-s是我要备份的源目录,-d是我要将这些文件发送到的目录。你知道吗

我想要什么:

我希望能够编写无限数量的环境变量,这些变量可以在.bat文件中定义,也可以从另一个文本文件添加到.bat文件中,这样脚本就更智能了。为了使其工作,脚本必须“知道”哪些环境变量将由脚本(导入的)备份,而不是用户在系统级别上可能拥有的其他环境变量。我宁愿这样做:

  1. 用户/管理员可以在某个地方创建一个文本文件,其中包含要备份的所有变量。你知道吗
  2. 脚本找到该文本文件并将env变量放入.bat文件中
  3. 脚本读入这些变量,不管它们是如何命名的,因为脚本以某种方式将它们与可能存在于.bat之外的全局变量区分开来。你知道吗

我当前的解决方案:

现在我已经使用了命名前缀/后缀来查找匹配项,然后将它们用于脚本,但我不想强制使用命名约定来实现这一点。你知道吗

是否有一个更清晰的解决方案来区分.bat中设置的环境变量和我当前使用的环境变量之外的其他环境变量?你知道吗


Tags: 文件用户脚本db环境变量some备份命名