【问题标题】:Batch Loop and Text file read批量循环和文本文件读取
【发布时间】:2017-05-23 21:31:24
【问题描述】:

我正在研究制作一个简单的浴文件,它将通过几个简单的命令循环大约 1200 次(文本文件的长度)。我需要注意的是,这些命令需要从文本文件中读取变量

让我们看看这个伪代码是否对任何人都有意义

start loop (for # of lines in txt file)
    net use \\"IP from txt file" /user:Username *
    robocopy \\server\share\path \\"IP from txt file"\c$\Folder
    robocopy \\server\share\path \\"IP from txt file"\c$\AnotherFolder
    net use \\"IP from txt file" /delete
loop

由于环境和文件从域服务器到工作组 pc 的传输,这是我发现我可以完成这项工作的唯一方法。由于在此处输入的时间太长,我无法为此使用 psexec 及其列表功能。

如果您能提供任何帮助,我们将不胜感激

【问题讨论】:

    标签: loops batch-file


    【解决方案1】:

    检查此批处理文件,如果输出正确,请在您的命令前删除每个 echo

    @echo off
    set "File=List.txt"
    for /f "delims=" %%A in ('Type "%File%"') do (
        echo net use \\%%A /user:Username *
        echo robocopy \\server\share\path \\%%A\c$\Folder
        echo robocopy \\server\share\path \\%%A\c$\AnotherFolder
        echo net use \\%%A /delete
    )
    pause 
    

    编辑:将结果保存到日志文件中

    @echo off
    set "File=List.txt"
    set "LogFile=LogFile.txt"
    If Exist "%LogFile%" Del "%LogFile%"
    for /f "delims=" %%A in ('Type "%File%"') do (
        echo net use \\%%A /user:Username *
        echo robocopy \\server\share\path \\%%A\c$\Folder
        echo robocopy \\server\share\path \\%%A\c$\AnotherFolder
        echo net use \\%%A /delete
    )>>"%LogFile%"
    Start "" "%LogFile%" 2>&1
    

    【讨论】:

    • 太棒了 - 工作得非常好现在还有一个新问题 - 我如何将所有这些附加到某个地方的日志文件中 - 其位置可以是任何方便的地方
    • @Dashwitz 您的意思是要将结果保存到 LogFile 中吗?
    • 正确,我尝试将输出重定向到 >logfile.txt 但这不会产生预期的结果。理想的做法是不仅让输出在 cmd 提示符中可见 - 而且还保存到日志文件中
    • 效果很好!比我正在研究的选项更好 - 把它放在一个 sub 中并编写 sub 的输出。再次感谢
    • 这里是疯狂的跟进,但是有可能“多线程”这个吗?如您所见,我正在域服务器和远程工作组机器(大约 3800 台机器)上的几个位置之间移动一些文件,而且我没有接近利用可用带宽。如果我可以一次发送到多达 4 台机器,我应该能够显着缩短传输时间
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-31
    • 1970-01-01
    相关资源
    最近更新 更多