我正在执行的命令如下:
dir >> dir.txt
我只想将某些行重定向到txt,例如最后两行。我怎样才能做到这一点? findstr
会在我身上发生,但我不知道如何。
答案 0 :(得分:2)
简单的findstr匹配将隔离这两行,因为它们是仅有的两个以两个空格开头的行:
Dir | FindStr /BC:" " >> "dir.txt"
答案 1 :(得分:1)
假设您使用的是Windows,则可以使用https://sourceforge.net/projects/tailforwin32/中的Unix tail命令的Win32端口,然后发出管道命令:
dir | tail --lines=2
这显示了最后两行
希望这会有所帮助
答案 2 :(得分:1)
使用您计算机上已有的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
答案 3 :(得分:0)
这是一个简单的批处理文件,用于获取命令dir
的标准输出的后两行以及与语言有关的信息
dir
默认情况下排除设置了隐藏属性的目录和文件,因为如果根本不使用/A-H
选项dir
,则使用隐式/A
。
这是要显示的批处理文件,显示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 /?