我想在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看到我的回答 –