我正在执行的命令如下:
dir >> dir.txt
我只对将某些行重定向到 txt 感兴趣,例如最后两行。我该怎么做?我findstr
想到了,但我不知道怎么做。
一个简单的 findstr 匹配将隔离这两行,因为它们是唯一以两个空格开头的两行:
Dir | FindStr /BC:" " >> "dir.txt"
假设你在Windows下,你可以从 https://sourceforge.net/projects/tailforwin32/使用Unix tail命令的Win32端口,然后发出管道命令:
dir | tail --lines=2
这显示了最后 2 行
希望这有帮助
这可以通过计算机上已有的PowerShell轻松完成。
powershell -NoLogo -NoProfile -Command "& cmd.exe /C dir | Select-Object -Last 2 | Out-File -FilePath '.dir.txt' -Encoding ascii -Append"
或者。。。
powershell -NoLogo -NoProfile -Command "& cmd.exe /C dir | Select-Object -Last 2" >>dir.txt
这是一个简单的批处理文件,用于获取命令dir
标准输出的最后两行输出,其中包含有关
- 目录中的文件数,
- 目录中文件的总字节数,
- 目录中的子目录数,
- 分区上的可用空间(以字节为单位)。
dir
默认排除设置了隐藏属性的目录和文件,因为如果根本不使用选项/A
dir
则使用隐式/A-H
。
这是批处理文件,用于显示当前目录上没有任何参数dir
执行的最后两行输出,这当然可以与包含批处理文件的目录不同。
@echo off
setlocal EnableExtensions EnableDelayedExpansion
set "SummaryFiles="
set "SummaryFolders="
for /F delims^=^ eol^= %%I in ('dir') do (
set "SummaryFiles=!SummaryFolders!"
set "SummaryFolders=%%I"
)
if defined SummaryFiles echo !SummaryFiles!
if defined SummaryFolders echo !SummaryFolders!
pause
endlocal
两个echo
完成的输出也可以重定向到文本文件中,例如
( if defined SummaryFiles echo !SummaryFiles!
if defined SummaryFolders echo !SummaryFolders!
) >DirectorySummary.txt
要了解使用的命令及其工作原理,请打开命令提示符窗口,在那里执行以下命令,并仔细阅读为每个命令显示的所有帮助页面。
dir /?
echo /?
endlocal /?
for /?
if /?
pause /?
set /?
setlocal /?