ウィンドウ内の単純なヘッドコマンドを実行して、最初のフォルダーを探すには、 dir/b/a-d | head -1ウィンドウ内のヘッドコマンド
私はこのマシンにaddtional kitをダウンロードできません。また、PowerShellやその他のスクリプト言語を使用することもできません。
ウィンドウ内の単純なヘッドコマンドを実行して、最初のフォルダーを探すには、 dir/b/a-d | head -1ウィンドウ内のヘッドコマンド
私はこのマシンにaddtional kitをダウンロードできません。また、PowerShellやその他のスクリプト言語を使用することもできません。
cmd
でhead -n 1
コマンドの実装は、第1の入力を読み取り、最初のフォルダ
dir /b /ad | cmd /e /v /q /c"set/p.=&&echo(^!.^!"
別cmd
インスタンスへdir
コマンドの出力(遅延膨張および拡張子を持つ有効)これだけパイプを見つけるためにそれをコンソールにエコーします。
ノート:通常、これは問題なく動作しますが、理論的にはdir
はまだ最初の行を書いているが、カットラインを取得し、終了していないながらset /p
が正確に実行された場合、これは失敗することができるように可能性があります。
ありがとう!それは非常に有用だった – 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)
IすぐにそれをテストするWindowsマシンを持っていないが、それはトリックを行う必要があります。また、既定のオプションでは、セミコロン;
(リンクの "eol"オプションを参照してください)から始まる無視される行をfor /f
にすることに注意してください。 for /f
もread files(OPしかし関連のない意思に使用することができます:あなたはスクリプトでそれを使用したい場合
は、あなたの代わりに%G
の%%G
を使用し、後藤
EDITを使用する必要があります質問に)。最初の行を読むと、(1がファイルを再び(コマンドの最初のnlines
ラインを希望する場合for /f
の入力を除き、それはIN (<file>)
代わりのIN ('<command>')
。
なり、ちょうどfor /f
の入力を変更basiclyその後、同じことですまた、ここでは無視され、空行と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
必要になります。
そしてここで私たちはスクリプトの完全な例を持っています。したがって、 'または他のスクリプト言語'。それは基本的なものですが、スクリプティングとIMOのどちらでも簡単なものではありません。それが健全な解決策ではないことを意味するわけではありませんが、最初の質問の要件では、それを実装する標準の標準のボックスコマンドがない場合、実際には解決策はあまりありません。 – Seth
その場合はできません。 – Seth
@セスはい、あなたは –
@Shaked私の答えを参照してください –