批处理文件新行问题

时间:2014-06-18 13:16:36

标签: batch-file cmd echo

我现在正在撕扯我的头发。

我有一个批处理文件,它搜索子目录以查找jpg文件,然后使用它找到的文件名解析一些简单的HTML代码并将其推送到文本文件。

创建的每个文件的每一行都用一个空行隔开是非常重要的。

这就是我加入“Echo”的原因。线。请参阅下面的批处理文件代码:

pushd \\SRVAPP1\Image Archive
Echo %CD%
PAUSE
for /R %CD% %%F in (*.jpg) do (
Echo %%~nF
Echo.
Echo ^<html^>^<img src='^.%%~pnxF' ^>^<a href='^.%%~pnxF'^>Download file^<^/a^>^<^/html^>
Echo.
Echo ^[^[Open file^|file^:^.%%~pnxF^]^]
Echo.
Echo ^[^[Show in folder^|file^:^.%%~pF^]^]
) > ".\Documentation\%%~nF.tid"
popd
PAUSE

循环遍历第一个子目录,并创建一个完美的输出。以下示例

YORYM_TA1

<html><img src='.\2014-03-13\JPG\YORYM_TA1.jpg' ><a href='.\2014-03-13\JPG\YORYM_TA1.jpg'>Download file</a></html>

[[Open file|file:.\2014-03-13\JPG\YORYM_TA1.jpg]]

[[Show in folder|file:.\2014-03-13\JPG\]]

但是,当批处理文件移动到第二个目录时 - 以及所有后续目录“Echo”。似乎被“Echo ..”取代,你得到以下输出(完全停止而不是空行):

YORYM_H2200_8
.
<html><img src='.\2014-05-22\JPG\YORYM_H2200_8.jpg' ><a href='.\2014-05-22\JPG\YORYM_H2200_8.jpg'>Download file</a></html>
.
[[Open file|file:.\2014-05-22\JPG\YORYM_H2200_8.jpg]]
.
[[Show in folder|file:.\2014-05-22\JPG\]]

为什么会出现这种情况的任何想法?我正在运行Windows 7。

2 个答案:

答案 0 :(得分:3)

使用echo.可能会有问题,因为它每次都会在磁盘上搜索名为echo但没有扩展名的文件。如果有这样的文件,echo.就会失败。

echo(更快更安全。

对于echo以外的所有其他组合,您可以阅读
Dostips: ECHO. FAILS to give text or blank line - Instead use ECHO/

答案 1 :(得分:2)

我有一个解决方案,但没有解释:

使用echo(代替echo.