在批处理脚本中使用echo命令

时间:2017-05-07 08:00:44

标签: powershell batch-file

我必须将批处理脚本转换为PowerShell。我遇到了这几行代码,我不知道他们做了什么。有人可以解释一下,尤其是echo语句和robocopy吗?

set logdir=D:\Internal\Log
set runlog=%logdir%\run.log
set roboexe=robocopy /NJH /XX /NP

echo ^<!-- 1>>%runlog% 2>&1 
echo Move-Copy -  %account% %Time:/=% 1>>%runlog% 2>&1
echo Found files for %account% IN 1>>%runlog% 2>&1

%roboexe% "%fromdir%" "%historydir%" %wildcard% 1>>%runlog%

1 个答案:

答案 0 :(得分:3)

shell中的

echo只是将输出打印到屏幕上。该命令也可以在PowerShell中运行,但它实际上是alias Write-Output,它将输出发送到标准success stream /管道(如果没有其它地方可以去,那就是控制台/屏幕默认情况下。)

Robocopy是一种高级复制实用程序。它具有超出Windows标准复制功能的一系列功能。记录here

解释此行中的令牌:

echo ^<!-- 1>>%runlog% 2>&1

<>>>redirection operators^字符会转义<字符,以便字面上使用而不是重定向。我相信!--也只是字面印刷。

1>>正在使用追加重定向将标准输出附加到%runlog%中指定的文件。

2>&1将错误输出流重定向到标准输出流,因此基本上错误也会写入runlog。