我正处于一个小编程任务的中间,我很难过。需要做的是 - >
创建批处理文件以执行以下步骤(尽可能以伪代码编写)
IF USERDOMAIN==COMPUTERNAME
THEN
CreateFile cake.txt
cake.txt = %USERNAME% + " " + %COMPUTERNAME% + " " + nslookup(www.disney.com)
另一方面,我走了多远是<= p>
IF USERDOMAIN == COMPUTERNAME GOTO Text
:Text
echo.>"C:\cake.txt"
rem Saved in C:\cake.txt
echo USERNAME >> cake.txt
echo COMPUTERNAME >> cake.txt
我只知道C#,并且使用stackoverflow我发现了类似的问题: Batch script for loop & nslookup
但是,这个问题的语法只是nslookup的一般,我根本不了解Windows批处理语法,我通过几个小时的搜索得到了这个。
答案 0 :(得分:0)
应该是:
@echo off
rem case insensitive string comparison
if /i %USERDOMAIN% == %COMPUTERNAME% (
rem clear file
break>"C:\cake.txt"
rem output all commands in following block to file
(
echo %USERNAME%
echo %COMPUTERNAME%
nslookup www.disney.com
) >> "C:\cake.txt"
)
如果你想过滤nslookup
的输出,你必须采用不同的方式,但是你没有说明输出看起来应该是这样的mabe应该是足够的。
我根本不了解Windows批处理语法
如果您对自己的问题更具体,那么就可以向您解释您没有得到的问题 关于批处理脚本的一个很好的参考是the site SS64。每个命令都在那里得到很好的解释并通过例子完成。
为什么使用
@echo off
?在开始时,稍后使用echo
?它不仅仅是一种输出代码进展状态信息的方法吗?/i
的目的对我来说也是未知的,最后,为什么在处理文件之前你break
?我读到一个>
用于删除和清除文字,那么为什么需要某种break
?
<强> 1。
@echo off
和echo
:
使用@echo off
命令以便在批处理期间不显示命令本身,请考虑以下示例:
@echo off
echo Hello world with echo off!
@echo on
echo Hello world with echo on!
在命令提示符下,它将打印如下内容:
Hello world with echo off!
C:\Users\...\Desktop>echo Hello world with echo on!
Hello world with echo on!
echo
命令仅用于向控制台输出内容。
<强> 2。
if /i
强>
/i
会比较不区分大小写的字符串,以便"ABC" == "abc"
或"abC" == "AbC"
为true
。
第3。
break
和>
或>>
:
清除您使用的文件echo.>"C:\cake.txt"
。这不是完全错误的,但是会将新行保存到文件中而不清除它,因为echo.
表示新行。 break
命令将不生成输出(see here on SO),如果将其重定向到>
文件,则文件将完全为空。
在谈论重定向时,您在>
和>>
之间有所不同。单个>
表示覆盖现有文件(如果已存在),并且双>>
表示附加到文件或创建新文件(如果该文件不存在)。