# baostock Day1 全量下载 wrapper(成份股 → 日K线 串行,单进程单登录) # 环境变量覆盖脚本默认 Mac 路径 → Windows 输出路径 $ErrorActionPreference = 'Continue' $ProgressPreference = 'SilentlyContinue' $py = 'C:\Python310\python.exe' $dir = 'C:\sanguo_vnpy_v2\scripts\data_platform' $env:BS_DAILY_OUT_DIR = 'C:\sanguo_vnpy_v2\data\daily_baostock' $env:BS_CONSTITUENT_OUT_DIR = 'C:\sanguo_vnpy_v2\data\constituent_baostock' $env:PYTHONIOENCODING = 'utf-8' $wrapper_log = 'C:\sanguo_vnpy_v2\data\baostock_day1_wrapper.log' $const_log = 'C:\sanguo_vnpy_v2\data\constituent_baostock_download.log' $daily_log = 'C:\sanguo_vnpy_v2\data\daily_baostock_download.log' function Log-W($m) { "$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss') $m" | Out-File -FilePath $wrapper_log -Append -Encoding UTF8 } Log-W "=== WRAPPER START ===" Log-W "BS_DAILY_OUT_DIR=$($env:BS_DAILY_OUT_DIR)" Log-W "DiskFree_GB_start=$((Get-PSDrive C).Free / 1GB)" # PHASE1 成份股历史(快,~20min,~1200 query)— 同时验证 VPS 环境(login/网络/parquet写) Log-W "PHASE1 constituent START" & $py -X utf8 "$dir\baostock_constituent_download.py" *>&1 | Tee-Object -FilePath $const_log $const_exit = $LASTEXITCODE Log-W "PHASE1 constituent DONE exit=$const_exit" # PHASE2 日K线全市场全字段(慢,~15h,~5537 query)— 主线,过夜跑 Log-W "PHASE2 daily_kline START" & $py -X utf8 "$dir\baostock_daily_fullmarket_download.py" *>&1 | Tee-Object -FilePath $daily_log $daily_exit = $LASTEXITCODE Log-W "PHASE2 daily_kline DONE exit=$daily_exit" Log-W "DiskFree_GB_end=$((Get-PSDrive C).Free / 1GB)" Log-W "=== WRAPPER EXIT const_exit=$const_exit daily_exit=$daily_exit ==="