如何使用.bat添加开始使用文本文件而不是追加到结尾?

时间:2013-01-29 17:33:47

标签: batch-file

我有一个批量文件,它返回一个数据列表。目前,每次运行脚本时,它都会将新提取的数据附加到文本文件的末尾。有没有办法可以将新数据添加到文件的开头,而不是将其追加到最后?我需要以这种方式工作,因为数据按时间顺序,我希望文本文件从最新到最旧排序。

@ECHO OFF

REM用于将服务器用户统计信息记录到位于本地c:\ userlog目录

中的文本文件中
ECHO Terminal Server Users, %Date%, %TIME%>>c:\Userlogs\UserListTest.txt
quser /server:servername>>C:\Userlogs\UserListTest.txt

START C:\Userlogs\UserListTest.txt
Exit

任何帮助将不胜感激

5 个答案:

答案 0 :(得分:6)

以下将按您的意愿工作

    echo this will come at the begining of file >>log.txt
    type log1.txt >> log.txt
    del log1.txt
    ren log.txt log1.txt

答案 1 :(得分:2)

使用临时文件的一种方式。

prepend.bat:

:: copy existing file to a temporary file
copy c:\temp\existing.txt c:\temp\temp.txt
:: replace content with your new value
echo test >c:\temp\existing.txt
::  append content of temp file
for /F %%i in (c:\temp\temp.txt) do echo %%i >> c:\temp\existing.txt
:: remove tempfile
del c:\temp\temp.txt

答案 2 :(得分:1)

您可以尝试使用以下代码。

@ECHO OFF
:: Store the string  you want to prepend in a variable
SET "text=%1"
:: copy the contents into a temp file
type userlist.txt > temp.txt
:: Now Overwrite the file with the contents in "text" variable
echo %text% > userlist.txt 
:: Now Append the Old Contents
type temp.txt >> userlist.txt
:: Delete the temporary file
del temp.txt

希望这能解决您的问题。 :)

答案 3 :(得分:0)

Batch中的一个重要问题是构建有序数组,必须通过文件完成,Batch没有数组结构。您可以使用ramdisk来确保将文件路径抽象为变量,以便将内容强制内存并批量保存一些IOPS。

答案 4 :(得分:-1)

首先,阅读文件的内容。将其添加到您要添加到开头的内容并将所有内容写入文件。