2013-04-23 99 views
0

我對這個東西有點不高興。我正在嘗試製作批處理腳本以將Backup Exec 10 xml日誌文件轉換爲文本。for語句不會在批處理腳本中運行

當我搜索,編寫腳本並試圖運行它時,我從這裏得到了一些很好的答案。它轟炸了第一個「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 

回答

1

使用正確的語法爲您的for循環:

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

我會嘗試這個.....我看到在另一個帖子居然...衛生署! – user2312406 2013-04-23 17:32:11

+0

工作。感謝您的信息和快速響應!有趣的是,我在這裏讀到這個。 http://ss64.com/nt/for_f.html我從這些論壇學到了很多! – user2312406 2013-04-23 17:34:15

+0

@ user2312406您將使用接受按鈕接受Endoro答案。 – ElektroStudios 2013-04-23 23:33:33

1

您需要在爲了加倍您%的。

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

這不起作用。 – Endoro 2013-04-23 17:38:13

+0

@Endoro - 論壇必須刪除後面的引號。我從他的帖子中複製並粘貼。 – 2013-04-23 17:48:03

+0

這隻適用於沒有空格的短文件名:) – Endoro 2013-04-23 17:53:30