这是我的第一个问题,所以不要太难评判我。
我试图创建一个批处理文件,将PC名称,用户,日期和时间输入到文本(.txt)文件中。我想要/需要它有多个日志而且只有文件。
(文本文件将在同一目录中)
这是我到目前为止所做的,它似乎适用于前2个(你会看到我的意思)然后它会生成另一个名为1的文件。我不知道它是我的笔记本电脑还是它的我缺乏任何编码技巧。
@echo off
:make1
if exist "1.txt" goto make2
set SomeVar=%ComputerName% %UserName% %date% %time%
echo %SomeVar% > "1.txt"
exit
:make2
if exist "2.txt" goto make3
ren "1.txt" "2.txt"
echo %SomeVar% >> "2.txt"
exit
:make3
if exist "3.txt" goto make4
ren "2.txt" "3.txt"
echo %SomeVar% >>> "3.txt"
exit
:make4
if exist "4.txt" goto make5
ren "3.txt" "4.txt"
echo %SomeVar% >>>> "4.txt"
exit
:make5
if exist "5.txt" goto make6
ren "4.txt" "5.txt"
set SomeVar=%ComputerName% %UserName% %date% %time%
echo %SomeVar% >>>>> "5.txt"
exit
:make6
set SomeVar=%ComputerName% %UserName% %date% %time%
echo %SomeVar% >>>>>> "6.txt"
pause
exit
我知道最后一个将被覆盖,但我可能会被打扰添加堆 (如果你有办法让它变得无限,那将非常感激。)
我在学校上课期间完成了大部分工作,大约一年前我开始批量生产,对于糟糕/粗暴/过度/烦人的代码感到抱歉
谢谢,ThePolarBear
答案 0 :(得分:1)
> mean overwrite entire line
>> append to last line
您无需输入>>>>>
答案 1 :(得分:0)
@echo off
setlocal
:make1
set next=1
if exist "1.txt" goto makeNext
set SomeVar=%ComputerName% %UserName% %date% %time%
echo %SomeVar% > "1.txt"
exit
:makeNext
set /A next+=1
if exist "%next%.txt" goto makeNext
set /A prev=next-1
ren "%prev%.txt" "%next%.txt"
set SomeVar=%ComputerName% %UserName% %date% %time%
echo %SomeVar% >> "%next%.txt"
exit
>>>...
。使用一个>
创建一个新文件。使用两个 >>
将数据附加到现有文件,或者如果它不存在则创建它。setlocal
命令会在结束时自动删除在此批处理文件中创建的变量,如SomeVar
。在这种情况下,这是一个方便的功能。某些高级程序(与“延迟扩展”相关)需要使用setlocal
。如果您对此代码有任何疑问,请询问。但是,您应首先查看相关命令的帮助,例如:set /?
;否则,我会回答:“看到这样一个命令的帮助”的简单问题!的 ;)
强>