2017-09-13 110 views
2

在我下面的代碼,我試圖找出如何使輸出的所有樹目錄的批處理文件(即CMD輸出)需要幫助創建一個批處理輸出CMD輸出 - 批

md D:\Outputs\%USERNAME%\ 
cd D:\Outputs\%USERNAME%\ 
tree C: /f 
*output* >> tree.txt 

我上面提到的代碼只輸出荒謬的代碼量 - 比單獨在CMD中執行相同的命令要長。

(是的,我知道我把d:和C:爲不同的驅動器上的d:運行從插入到d一個USB:和我的C:是我的主存儲驅動器。)

  1. 你能告訴我如何讓它輸出與CMD大致相同的輸出量(我懷疑是不同的目錄)。

  2. 你能不能也告訴我如何將輸出到一個文本文件(即我該使用什麼命令,它說*輸出*?)

謝謝您的解答。

+0

你是什麼意思,「比單獨在'CMD'中做同樣的命令更長?你在'CMD'中做了什麼命令,_exactly_,你有什麼目標? –

+0

對於* output *'沒有「命令」 - 它只是'tree C:/ f >> tree.txt'參見[SS64 - Redirection](https://ss64.com/nt/syntax-redirection.html)更多解釋 – Stephan

+0

@Stephan是的。唯一的問題是它不會管道Unicode字符。 –

回答

2

好吧,有幾個選項。 這一個不支持Unicode。

md D:\Outputs\%USERNAME%\ 
cd D:\Outputs\%USERNAME%\ 
tree /f C:\ > logfile.txt 

這個支持Unicode,因爲它輸出到剪貼板。但是需要你手動粘貼它。

tree /f C:\ |clip 

然後打開Notepad.exe和CTRL + V或右鍵單擊並粘貼。

最後,你可以管ASCII然後隱蔽爲Unicode這樣的腳本...

md D:\Outputs\%USERNAME%\ 
cd D:\Outputs\%USERNAME%\ 
tree /f C:\ > a.txt 
cmd /u /c type a.txt > output.txt 
del /Q a.txt 

然後就開手動或通過相同的腳本通過在最底部加入這個。

notepad output.txt 

最後,我建議你在每次試圖創建它之前檢查一下目錄是否存在,這樣做會更有意義並且會導致更少的錯誤。

if not exist "C:\Outputs\%USERNAME%" mkdir "C:\Outputs\%USERNAME%" 
cd D:\Outputs\%USERNAME%\ 
tree /f C:\ > a.txt 
cmd /u /c type a.txt > output.txt 
del /Q a.txt 
+0

你應該添加一個尾部反斜槓,'TREE/F C:\> a.txt',否則你不可能得到一個完整的清單根源於C: – Compo

+0

@Compo True,謝謝..快速打字,讓我修復。 –