4

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

@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

任何帮助将不胜感激

4

5 回答 5

8

以下将按您的意愿工作

    echo this will come at the begining of file >>log.txt
    type log1.txt >> log.txt
    del log1.txt
    ren log.txt log1.txt
于 2013-01-30T05:25:02.883 回答
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
于 2013-01-29T18:48:22.487 回答
2

you can try using the code below.

@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

Hope this solves your problem. :)

于 2013-01-30T11:19:03.923 回答
-1

Batch 中的一个大问题是构建有序数组,这必须通过文件来完成,Batch 中没有数组构造。您可以执行的一种强制将内容放入内存并批量保存一些 IOPS 的选项是使用 ramdisk,确保将文件路径抽象为变量。

于 2015-02-06T22:23:10.570 回答
-2

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

于 2013-01-30T05:59:49.967 回答