您好我想将Windows批处理文件转换为linux python脚本。我能编写python脚本但我无法理解一些窗口批处理文件的代码,我需要将其转换为linux python脚本
:vars
:: Main folder
set BASE_DIR=%~dp0
:: Downloadable data
set DATA_DIR=%BASE_DIR%\data.downloadable
set "DBF_DIR=%data_dir%\101\dbf"
set "CSV_DIR_UPDATE=%data_dir%\101\csv.update"
set "CSV_DIR_FULL_ARCHIVE=%data_dir%\101\csv.full"
set "SQL_DIR=%data_dir%\101\sql"
set "RAR_DIR=%data_dir%\101\rarzip"
:: Private data
set "DATA_DIR_PRIVATE=%BASE_DIR%\data.private"
set "FORM_DIR_VEB=%data_dir_private%\veb\form"
set "CSV_DIR_VEB=%data_dir_private%\veb\csv"
:: Output
set "DIR_OUTPUT=%BASE_DIR%\output"
::::::::::::::::::::::::::::::::::::::::
: add some paths
PATH %PATH%;%BASE_DIR%
PATH %PATH%;%BASE_DIR%\task\maintain
PATH %PATH%;%BASE_DIR%\py
::::::::::::::::::::::::::::::::::::::::
if not exist %DATA_DIR% md %DATA_DIR%
if not exist %DBF_DIR% md %DBF_DIR%
if not exist %CSV_DIR_UPDATE% md %CSV_DIR_UPDATE%
if not exist %CSV_DIR_FULL_ARCHIVE% md %CSV_DIR_FULL_ARCHIVE%
if not exist %RAR_DIR% md %RAR_DIR%
if not exist %SQL_DIR% md %SQL_DIR%
if not exist %DIR_OUTPUT% md %DIR_OUTPUT%
echo Directories checked or created...
:end
::::::::::::::::::::::::::::::::::::::::
你能解释一下上面的代码究竟做了什么,至少给我逻辑,以便我可以用python脚本实现
答案 0 :(得分:1)
在批处理中,使用SET
命令声明变量。声明变量的值由%
符号括起来的变量名称使用,即%variable%
。
以下代码将批处理路径设置为名为%BASE_DIR%
的变量。
set BASE_DIR=%~dp0
类似地,下面的代码设置批处理的路径以及它们各自变量的目录
:: Downloadable data
set DATA_DIR=%BASE_DIR%\data.downloadable
set "DBF_DIR=%data_dir%\101\dbf"
set "CSV_DIR_UPDATE=%data_dir%\101\csv.update"
set "CSV_DIR_FULL_ARCHIVE=%data_dir%\101\csv.full"
set "SQL_DIR=%data_dir%\101\sql"
set "RAR_DIR=%data_dir%\101\rarzip"
:: Private data
set "DATA_DIR_PRIVATE=%BASE_DIR%\data.private"
set "FORM_DIR_VEB=%data_dir_private%\veb\form"
set "CSV_DIR_VEB=%data_dir_private%\veb\csv"
:: Output
set "DIR_OUTPUT=%BASE_DIR%\output"
以下代码会将%BASE_DIR%
,%BASE_DIR%\task\maintain
,%BASE_DIR%\py
路径中存储的值附加到PATH环境变量。
PATH %PATH%;%BASE_DIR%
PATH %PATH%;%BASE_DIR%\task\maintain
PATH %PATH%;%BASE_DIR%\py
以下代码会创建存储在这些变量中的文件夹%DATA_DIR%
,%DBF_DIR%
,%CSV_DIR_UPDATE%
,%CSV_DIR_FULL_ARCHIVE%
,%CSV_DIR_FULL_ARCHIVE%
if not exist %DATA_DIR% md %DATA_DIR%
if not exist %DBF_DIR% md %DBF_DIR%
if not exist %CSV_DIR_UPDATE% md %CSV_DIR_UPDATE%
if not exist %CSV_DIR_FULL_ARCHIVE% md %CSV_DIR_FULL_ARCHIVE%
if not exist %RAR_DIR% md %RAR_DIR%
if not exist %SQL_DIR% md %SQL_DIR%
if not exist %DIR_OUTPUT% md %DIR_OUTPUT%
答案 1 :(得分:0)
该脚本添加了%PATH%
环境变量的一些路径。然后它检查变量指定的目录路径是否存在,如果不存在则创建它们。
BASE_DIR目录是脚本当前所在的目录。
我觉得我的回答应该比这长,但这完全是脚本所做的。