1

マトリックスのような (0 と 1) 出力を作成できることを期待して、小さな .bat ファイルを作成しました。

問題は、かなり遅いことです。1 行を埋めるのに 2 秒近くかかります。

より速く実行するためにできることはありますか?

Matrix.bat:

@echo off
color 02

:start
if %random% LSS 16384 (
echo|set /p=1
) else (
echo|set /p=0
)
goto start
4

1 に答える 1

5

エコーは非常に遅いです。したがって、単一の文字をエコーせずに行を作成してから、行全体を一度にエコーします。別のトリック:のみset /a "l=!random! &1"からの最後のビットを使用します!random!(したがって、 または のいずれ0かが得られます1)。これは整数を処理するよりも高速です。

@echo off
setlocal ENABLEDELAYEDEXPANSION
:start
set line=
for /L %%i in (1,1,80) do (
    set /a "l=!random! &1"
    set line=!line!!l!
  ) 
  echo !line! 
)
goto start
于 2013-08-12T12:36:42.917 に答える