我想插入一个文本文件的内容为cmd
控制台,通过使用:插入命令到启动CMD
start cmd.exe < c:\text.txt
我也试过:
start cmd.exe | c:\text.txt
然而,这两个打开cmd
外壳,但没有任何东西能通过。
我的观点是最后我有一个调度程序jenkins,当我用start
命令打开它时,我将控制台内文本文件的内容传递给控制台。所以我不是简单地试图打印到cmd
控制台;对于不同的情况,我只能使用echo
。
我想插入一个文本文件的内容为cmd
控制台,通过使用:插入命令到启动CMD
start cmd.exe < c:\text.txt
我也试过:
start cmd.exe | c:\text.txt
然而,这两个打开cmd
外壳,但没有任何东西能通过。
我的观点是最后我有一个调度程序jenkins,当我用start
命令打开它时,我将控制台内文本文件的内容传递给控制台。所以我不是简单地试图打印到cmd
控制台;对于不同的情况,我只能使用echo
。
这样的事情?
通过Cmd.exe本身,
type C:\Text.txt
如果它是一个批处理文件,然后
type C:\Text.txt
pause
,或者只看到内容,使用更
more C:\Text.txt
如果您想要从文件中实际运行命令,而不是尝试从文本文件中将命令插入到cmd控制台中,则应该遵守将其构建为可执行文件的批处理文件。您可以通过文件重命名要么.bat
或.cmd
做到这一点
然后插入你的命令到文件中,或者通过双击文件或从调度等。这里运行它是一个批处理或CMD的例子执行它文件:
echo Please wait while I execute.
tp merge $/ServerFolderA $/ServerFolderB
所以只是你的初始命令的一些解释。当你跑时:
start cmd.exe | c:\text.txt
你实际上告诉系统从单个命令运行多个可执行文件。管道命令就像分隔符一样来指定每个命令。所以这样的:
ping 127.0.0.1 | nslookup www.google.com | cmd.exe | c:\text.txt
实际上将尽一切序列这些命令,首先它会平,做NSLOOKUP,开放的cmd.exe然后打开C:\的text.txt
在这里,你是在正确的轨道,但我的猜测是你在文件中有一行,而不是一个新行。
start cmd.exe < Text.txt
将使用TEXT.TXT文件作为应答文件,所以如果我编辑和插入以下内容:
echo This is an answer file
ping 127.0.0.1
ping 10.132.4.99
echo Completed all commands
,然后运行start cmd.exe < Text.txt
将顺序执行的一切。这里的区别是它逐行读取文件并显示它运行的每个命令。所以你的输出就会是这样的:
C:\>echo this is an answer file
this is an answer file
ping 127.0.0.1
Pinging 127.0.0.1 with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Ping statistics for 127.0.0.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
ping 10.132.4.99
Pinging 10.132.4.99 with 32 bytes of data:
Reply from 10.132.4.99: bytes=32 time=3ms TTL=254
Ping statistics for 10.132.4.99:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 3ms, Maximum = 8ms, Average = 4ms
正如你可以看到这个完美的作品,但它显示你正在运行,除了每个命令,它不运行的最后一个命令,它是echo Completed all commands
。所以要运行所有命令,你必须在最后一个命令后添加一行。但是,如果将其重命名为.cmd
,它将仅运行这些命令而不显示要运行的命令并运行每行直到结束。另一个问题的答案文件是它读取一行行,所以有3条新线,在应答文件中没有文字会导致这样的事情
C:\>
C:\>
C:\>
因此,有眼前这个应答文件:
ping 127.0.0.1
将不起作用,因为它是没有输入部分的单行。
但通过添加一个新行后,它将使其工作。
我希望所有这些都有道理。
谢谢,但我不确定..它闪烁的控制台,然后它消失了,没有时间去真正看到里面是否有任何东西.. – uniXVanXcel
你是否在一个批处理文件中这样做?如果是,则在批处理文件末尾键入暂停。我将修改答案。 –
你的文本文件的内容是什么? –
下面的答案并不完全回答这个问题,但下面的对话有一个很好的hackish,但优雅的解决方案,回应这个问题! – uniXVanXcel