我有一个批量文件,它返回一个数据列表。目前,每次运行脚本时,它都会将新提取的数据附加到文本文件的末尾。有没有办法可以将新数据添加到文件的开头,而不是将其追加到最后?我需要以这种方式工作,因为数据按时间顺序拉,我希望文本文件从最新到最旧排序。
@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
任何帮助将不胜感激
答案 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)
首先,阅读文件的内容。将其添加到您要添加到开头的内容并将所有内容写入文件。