我想在Windows中执行简单的头部命令以查找第一个文件夹,如: dir/b/a-d | head -1窗口中的头部命令
我无法将addtional套件下载到本机,也无法使用PowerShell或其他脚本语言。
我想在Windows中执行简单的头部命令以查找第一个文件夹,如: dir/b/a-d | head -1窗口中的头部命令
我无法将addtional套件下载到本机,也无法使用PowerShell或其他脚本语言。
在cmd
甲head -n 1
命令实现查找第一个文件夹
dir /b /ad | cmd /e /v /q /c"set/p.=&&echo(^!.^!"
这只是管道dir
命令的输出到一个单独的cmd
实例(具有延迟扩展和扩展使能),将读出的第一输入并将其回显给控制台。
注:通常这个工作没有问题,但在理论上有可能,所以如果正好执行set /p
而dir
还在写第一行,但还没有结束,得到的切割线,这可能会失败。
谢谢!这是非常有帮助的 – Shaked
在CMD您可以使用for /f
获得第一非empy行命令的结果:
FOR /F "delims=" %G IN ('<command>') DO (echo %G && exit /B 0)
对于示例将是:
FOR /F "delims=" %G IN ('dir /b /a-d') DO (echo %G && exit /B 0)
我没有立即测试它的Windows机器,但它应该做的伎俩。另请注意,默认选项使for /f
忽略以分号;
开头的行(请参阅链接中的“eol”选项)。
如果你想在脚本中使用它,你将不得不使用%%G
代替%G
和使用goto语句
编辑:该for /f
也可以用来read files(不是OP但相关的意向到问题)。阅读的第一行,然后basicly同样的事情(除了for /f
的输入,这将是IN (<file>)
而不是IN ('<command>')
。
如果希望第一nlines
行的命令(同样的文件,只是改变了for /f
的输入)更复杂的脚本将需要for /f
:
@echo off
SetLocal EnableDelayedExpansion
REM for this example, the first 5 lines
set nlines=5
set count=0
FOR /F "delims=" %%G IN ('<command>') DO (
set /a count+=1
IF !count! GTR %nlines% goto :afterLoop
echo %%G
)
:afterLoop
EndLocal
同样,此处的空行和那些开始用分号(取决于for /f
的选项)将被忽略,(不是由for /f
计数)。
在这里,我们有一个完美的脚本示例。因此'或其他脚本语言'。这是一个原始的,但它会是脚本和海事组织它并不真正合格简单。这并不意味着它不是一个完善的解决方案,但是如果没有标准的开箱即用的命令来实现它,那么对于最初的问题的要求来说,真的没有太多的解决方案。 – Seth
在这种情况下,你不能。 – Seth
@Seth是的,你可以 –
@ Shaked看到我的回答 –