【发布时间】:2018-08-08 05:05:14
【问题描述】:
这是我的第一个批处理脚本。我想转换文件列表并使用输入文件名的子字符串(年份)。但是子字符串部分不起作用:
SETLOCAL EnableDelayedExpansion
FOR %G IN (%dirInp%%station%???0.DAT) DO (
SET filInp="%G"
SET doy=!filInp:~-9,3! rem this doesn't work?
rem Convert Trimble GPS receiver observations to RINEX
%dirExe%teqc -tr d %G > %dirOut%%station%!doy!0.%yy%D
)
那么,我该怎么做呢?
【问题讨论】:
-
您应该会收到一条错误消息。要在批处理文件中使用,请使用
%%G而不是%G。set filInp="%G"应该是set "filInp=%%G" -
rem 在字符串中间不起作用
-
好的,我使用 %%G 更改了批处理脚本,它现在似乎可以工作了。我实际上首先尝试过,但我认为我使用 % 而不是 !对于 doy 变量。 (然后我之前将代码复制到 cmd 窗口以查看错误输出并使用 %G,但忘记了)。谢谢!
标签: batch-file for-loop substring