2014-01-12 16 views
0

我知道當我們在echo之後添加>>時,輸出可以工作,但在命令行中它本身是隱藏的。我想知道是否有一種方法可以在不重複我的代碼的情況下執行這兩種操作。所以它應該顯示在命令行和輸出文件中。當在命令行中添加TextLog到Echo時,輸入將不會顯示

Echo ### Backing up Drivers >> %Drive%:\Backup\Backup-Log.txt 
Ping 127.0.0.1 >nul 
xcopy "%HOMEDRIVE%\drivers" /c /d /h /e /i /y "%Drive%:\Backup\Drivers" >> %Drive%:\Backup\Backup-Log.txt 

echo ### Backing up the Registry... >> %Drive%:\Backup\Backup-Log.txt 
if not exist "%Drive%\Registry" mkdir "%Drive%:\Backup\Registry" 
if exist "%Drive%\Registry\regbackup.reg" Echo "Replacing %Drive%:\Backup\Registry\regbackup.reg" >> %Drive%:\Backup\Backup-Log.txt 
if exist "%Drive%\Registry\regbackup.reg" del "%Drive%:\Backup\Registry\regbackup.reg" >> %Drive%:\Backup\Backup-Log.txt 
regedit /c /d /h /e /i /y "%Drive%:\Backup\Registry\regbackup.reg" >> %Drive%:\Backup\Backup-Log.txt 
+0

採用三通濾波器,在Windows NT線工作。瑞士文件刀是它的一個工具。 'SFK - 瑞士文件刀文件樹Processor.' – foxidrive

+0

下面是同一個問題的另一個話題 - http://stackoverflow.com/questions/796476/displaying-windows-command-prompt-output-and-redirecting-it- to-a-file –

+0

謝謝我想我會很快刪除它,因爲它是一個dubale。感謝詹姆斯和狐狸。 –

回答

2

這裏是我的

的舊答案爲此我用下面的解釋:

set LogFile=somepath\logfile.txt 
set logg=^> _^&^& type _^&^&type _^>^>%LogFile% 
echo this goes to screen AND file! %logg% 

這是一個有點棘手。因此,讓我們拆開該行四個部分:

set logg=  ^> _   ^&^& type _   ^&^&type _^>^>%LogFile% 

的想法是打印行到一個臨時文件(名爲「_」)(第二部分),然後鍵入文件的內容畫面(第三部分)然後將其輸入到日誌文件(第四部分)。

把那所有的變量(第一部分),所以您不必到monsterstring鍵入每行。 (這就是爲什麼「>」和「&」轉義成「^」的原因)

所以每次你使用

echo whatever %logg% 

它就會出現在屏幕上,寫入%日誌文件%


你可以在這裏找到完整的答案:How do I make a log of all ECHO commands in a BATCH file?

注:

一個&是不夠的,所以不是^&^&只寫^&

的缺點是:它產生磁盤IO每一次,你使用它。

+0

我收到訪問被拒絕使用Windows 7的那發生了什麼事我以前,我想我會說腳本有問題。有關如何以管理員身份運行此批處理的任何線索? –

+0

等一下,讓我玩弄它。我得到了一些東西,但它不會將它保存到日誌中。 –

+0

我知道了我會發布我的答案。謝謝你的時間。 –

相關問題