批处理中循环加echo的问题

如果要在for /F %%i in (d:\ycbf\date.txt) do echo ……>d:\ycbf\ftp.ftp功能,而要echo的内容又很多,又需要换行
(echo内容为:open 182.241.12.72
user public public
lcd d:\JXKH\
bin
cd /soft/ciisFtpDir/JXKH/%%i/
get JXKH_%%i_131999.tar.gz
quit )
该怎么写,来实现把这些内容一起输出到文件中去?

该问题要变个方法解决;
思路如下:
将for /F %%i in (d:\ycbf\date.txt) do echo ……>d:\ycbf\ftp.ftp
改成:意思是先将变量提取出来,然后调用专门ECHO的标签来写文件

for /F %%i in (d:\ycbf\date.txt) do (
set varname=%%i
call :echofile
)

echo 还有个问题就是,你的date.txt内容行不一致,那么你生成的文件名也应该不一致,否则就没有使用FOR的必要,生成的文件名我变量如下:d:\ycbf\%varname%ftp.ftp,注意文件名空格的问题。否则写入失败。

exit

rem 标签1:
:echofile
echo.>>d:\ycbf\%varname%ftp.ftp open 182.241.12.72
echo.>>d:\ycbf\%varname%ftp.ftp user public public
echo.>>d:\ycbf\%varname%ftp.ftp lcd d:\JXKH\
echo.>>d:\ycbf\%varname%ftp.ftp bin
echo.>>d:\ycbf\%varname%ftp.ftp cd /soft/ciisFtpDir/JXKH/%varname%/
echo.>>d:\ycbf\%varname%ftp.ftp get JXKH_%varname%_131999.tar.gz
echo.>>d:\ycbf\%varname%ftp.ftp quit
goto :eof

另一个问题,不知道你如何解决执行d:\ycbf\ftp.ftp 的方法
如有问题,请百度 HI
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-04-14
@echo off
rem 看看d:\JXKH\soft\ciisFtpDir\JXKH目录对不对,不是的话,你改一下第四句的路径
for /f "delims=" %%a in (d:\ycbf\date.txt) do (
if not exist d:\JXKH\soft\ciisFtpDir\JXKH\%%a\ md d:\JXKH\soft\ciisFtpDir\JXKH\%%a\
(echo open 182.241.12.72
echo user public public
lcd d:\JXKH\
echo bin
echo cd \soft\ciisFtpDir\JXKH\%%a\
echo get JXKH_%%a_131999.tar.gz
echo quit)>d:\ycbf\ftp.ftp
)
第2个回答  2010-04-14
for /F "tokens=*" %%i in (d:\ycbf\date.txt) do echo %%i>>d:\ycbf\ftp.ftp

>> 把字符追加到文件里