这里我生成了两个日志文件
d:\ APP2 \ DIAG \ RDBMS \ ORCL \ ORCL \微量
ORCL
for /f "tokens=* delims=" %%A in (alertloglocation.log) do set alertlogloc=%%A
for /f "tokens=* delims=" %%A in (dbname.log) do set dbnm=%%A
echo %alertlogloc% \alert_%dbnm%.log >output.log
d:\ APP2 \ DIAG \ RDBMS \ ORCL \ ORCL \微量
现在我有两个变量alertlogloc和dbname。
d:\ APP2 \ DIAG \ RDBMS \ ORCL \ ORCL \跟踪\ alert_orcl.log
答案 0 :(得分:0)
您问题中的文件和代码无法提供您声明的结果。它产生d:\app2\diag\rdbms\orcl\orcl\trace \alert_orcl.log
,带有尾随空格。
删除%alertlogloc%
之后的空间,因为unclemeat建议,一切都应该没问题。如果您还想删除尾随空格,请在重定向之前删除空格。当您拥有tokens=*
时,无需delims=
。我喜欢在SET分配中使用引号来确保我没有不需要的尾随空格。
for /f "delims=" %%A in (alertloglocation.log) do set "alertlogloc=%%A"
for /f "delims=" %%A in (dbname.log) do set "dbnm=%%A"
echo %alertlogloc%\alert_%dbnm%.log>output.log
只要您知道每个文件只有一行,那么您可以简化:
for /f "delims=" %%A in (alertloglocation.log) do for /f "delims=" %%B in (dbname.log) do echo %%A\alert_%%B.log>output.log