需要帮助创建一个批处理输出CMD输出 - 批

问题描述:

在我下面的代码,我试图找出如何使输出的所有树目录的批处理文件(即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字符。 –

好吧,有几个选项。 这一个不支持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,谢谢..快速打字,让我修复。 –