for语句不会在批处理脚本中运行

时间:2013-04-23 17:25:44

标签: for-loop batch-file

我对这个东西有点像菜鸟。我正在尝试制作批处理脚本以将Backup Exec 10 xml日志文件转换为文本。

我在搜索时得到了一些很好的答案,编写了一个脚本并尝试运行它。它在第一个“for”声明中爆炸,我不确定原因。

我可以手动运行此脚本的每一步,效果很好。但是,如果我双击批处理文件并运行它,在第二次暂停后它就会爆炸。

有人在这里看到任何不合适的地方吗?我的智慧结束了。我认为“for”语句可能需要调整。我一直在搞乱,但没有找到合适的组合,因为它在脚本中成功运行。

@echo off
echo Starting Backup To Text SCript...
pause
cd c:\Program Files\Symantec\Backup Exec\Data
echo Get the latest BEX_TAPEBACKUP File...
pause
FOR /F "usebackq" %f in (`dir /Od /B`) do set "FILE=%f"
echo %FILE% will be converted to text
pause
cd c:\Program Files\Symantec\Backup Exec
REM This command will take the current Backup Exec XML log file and convert it to text.
pause
bemcmd -o31 -l"C:\Users\Administrator\Desktop\Backup Logs\backuplog.txt" s0 -       f"C:\Program Files\Symantec\Backup Exec\Data\%FILE%"
pause
echo Done

2 个答案:

答案 0 :(得分:1)

为for循环使用正确的语法:

FOR /F "delims=" %%f in ('dir /od /B') do set "FILE=%%~f"

答案 1 :(得分:1)

你需要在For中加倍你的%。

  FOR /F "usebackq" %%f in (`dir /Od /B`) do set "FILE=%%f"