我每天安排一个 .bat 文件运行一些命令,通过我从项目设置中获取的 key.json 文件从我的 Firestore 数据库获取 .json 文件,它通常运行良好,但有时它会卡住并且不运行没有完成整个命令。这就是它的样子,我希望你能帮我解决这个问题,因为我使用 json 文件每天更新 PowerBi 仪表板(每天更新与 OneDrive 同步的文件夹中的文件)。正如我所说,它在执行时大部分时间都有效,但有时它会卡住,而现在自 3 天前以来我还无法完全运行它。顺便说一句,如果有人知道无需打开我的计算机即可完成相同任务的方法,那就太好了。我尝试更改密钥文件,以更改我的互联网连接。我希望知道为什么会发生这种情况并每次都轻柔地运行它。
@echo off
call firestore-export -a C:\Users\Javier\OneDrive\Albaterra\key.json -b C:\Users\Javier\OneDrive\Albaterra\pagos.json -n pagos --prettyPrint
call firestore-export -a C:\Users\Javier\OneDrive\Albaterra\key.json -b C:\Users\Javier\OneDrive\Albaterra\planpagos.json -n planPagos --prettyPrint
call firestore-export -a C:\Users\Javier\OneDrive\Albaterra\key.json -b C:\Users\Javier\OneDrive\Albaterra\usuarios.json -n sellers --prettyPrint
call firestore-export -a C:\Users\Javier\OneDrive\Albaterra\key.json -b C:\Users\Javier\OneDrive\Albaterra\separaciones.json -n ordSep --prettyPrint
call firestore-export -a C:\Users\Javier\OneDrive\Albaterra\key.json -b C:\Users\Javier\OneDrive\Albaterra\Planes/planpagosL01.json -n planPagos/L01/pagosEsperados --prettyPrint
call firestore-export -a C:\Users\Javier\OneDrive\Albaterra\key.json -b C:\Users\Javier\OneDrive\Albaterra\Planes/planpagosL02.json -n planPagos/L02/pagosEsperados --prettyPrint
call firestore-export -a C:\Users\Javier\OneDrive\Albaterra\key.json -b C:\Users\Javier\OneDrive\Albaterra\Planes/planpagosL03.json -n planPagos/L03/pagosEsperados --prettyPrint
call firestore-export -a C:\Users\Javier\OneDrive\Albaterra\key.json -b C:\Users\Javier\OneDrive\Albaterra\Planes\planpagosL04.json -n planPagos/L04/pagosEsperados --prettyPrint
...
call firestore-export -a C:\Users\Javier\OneDrive\Albaterra\key.json -b C:\Users\Javier\OneDrive\Albaterra\Planes\planpagosL67.json -n planPagos/L67/pagosEsperados --prettyPrint
call firestore-export -a C:\Users\Javier\OneDrive\Albaterra\key.json -b C:\Users\Javier\OneDrive\Albaterra\lotes.json -n lotes --prettyPrint
call firestore-export -a C:\Users\Javier\OneDrive\Albaterra\key.json -b C:\Users\Javier\OneDrive\Albaterra\cotizaciones.json -n quotes --prettyPrint
call firestore-export -a C:\Users\Javier\OneDrive\Albaterra\key.json -b C:\Users\Javier\OneDrive\Albaterra\clientes.json -n customers --prettyPrint
for /f "tokens=2 delims==" %%I in ('wmic os get localdatetime /value') do set "timestamp=%%I"
REM Extract individual components of the date and time
set "year=%timestamp:~0,4%"
set "month=%timestamp:~4,2%"
set "day=%timestamp:~6,2%"
set "hour=%timestamp:~8,2%"
set "minute=%timestamp:~10,2%"
REM Create formatted timestamp
set "formatted_timestamp=%day%-%month%-%year% %hour%:%minute%"
REM Create JSON file with timestamp
echo {"timestamp": "%formatted_timestamp%"} > "C:\Users\Javier\OneDrive\Albaterra\hora.json"
解决这个问题的第一步:
@ECHO OFF
SETLOCAL
call :firestore pagos pagos
call :firestore planpagos planpagos
call :firestore usuarios sellers
call :firestore separaciones ordSep
FOR /L %%e IN (101,1,167) DO call :firestoreplan %%e
call :firestore lotes lotes
call :firestore cotizaciones quotes
call :firestore clientes customers
GOTO :EOF
:firestoreplan
SET /a iteration=%1
CALL :firestore Planes\planpagosL%iteration:~-2% planPagos\L%iteration:~-2%\pagosEsperados
GOTO :eof
:firestore
ECHO call firestore-export -a C:\Users\Javier\OneDrive\Albaterra\key.json -b C:\Users\Javier\OneDrive\Albaterra\%1.json -n %2 --prettyPrint
GOTO :eof
请注意,我假设最后几行(
wmic
处理)工作正常,我省略了)
我已将所有
/
更改为 Windows 标准反斜杠。
这里的目标是让所有
firestore-export
线都穿过一条线。
代码只是将
echo
行连接到控制台。这是故意的;它允许显示例程建议执行的处理以进行验证。验证后,删除
firestore-export
关键字之前的 echo
,它的处理方式应该与原始内容相同(当然,当您添加了 call
附录时)。下一步是确定哪条线出现故障以及为什么该线出现故障。 哪一行很简单:
wmic
它将向文件报告失败进程的参数
:firestore
ECHO %*>>alogfilename
call firestore-export -a C:\Users\Javier\OneDrive\Albaterra\key.json -b C:\Users\Javier\OneDrive\Albaterra\%1.json -n %2 --prettyPrint
GOTO :eof
(可以是您在合理范围内选择的任何文件名)。
现在最大的问题是:为什么?