我在 Windows 批处理脚本中有以下命令
echo =%%k-16,INDIRECT.EXT^("'C:\Users\...\Analysis\[ObsStreamflow.xlsx]Sheet1'^!A%%k"^),INDIRECT.EXT^("'C:\Users\...\Analysis\[sim%%j.xlsx]Sheet1'^!B!val!"^),^=C%%k/1000,^=D%%k-B%%k,^=ABS^(E%%k^),^=(E%%k^)^^2,=^(B%%k-B10^),=Sqrt^(B%%k^),=SQRT^(D%%k^),=^(J%%k - B13^)^^2 >>t%%j.csv
其中省略的文件路径长度为 38 个字符(我认为我没有达到行限制,但以防万一这是问题)。这是我的 .bat 文件中的一行,这里显示为多行只是为了使内容更具可读性。
输出大部分是正确的,除了我有^^2的地方,它只是变成2(所以我有=(E1)2和=(J1-B13)2。如果我省略了Indirect.Ext文本,并且只有
echo =%%k-16,a1,b1,^=C%%k/1000,^=D%%k-B%%k,^=ABS^(E%%k^),^=(E%%k^)^^2,=^(B%%k-B10^),=Sqrt^(B%%k^),=SQRT^(D%%k^),=^(J%%k - B13^)^^2 >>t%%j.csv
它打印正确,因此相关注释显示为 =(E1)^2 和 =(J1-B13)^2,这就是我所追求的。
我没有任何运气找到答案,我发现的所有内容都指向使用 ^^ 来让 echo 返回 ^。我不能将此命令分成多行,我需要它是 csv 格式的单行。
非常感谢任何有关修复的建议,我只需要使用一周左右,不需要优雅的解决方案,只需一个有效的解决方案。- 我对 bat 脚本非常陌生(实际上是一般的编程),同时会不断尝试不同的想法。