0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

windowsのコマンドプロンプトでsleepsortするバッチ例

Posted at

単発小ネタ Windowsバッチ

20240929_windowsのコマンドプロンプトでsleepsortするバッチ例

機能

  • あるソートアルゴリズムの実装例です。
  • 以下の二つのバッチを同じ階層に置いて、キッカーの方を起動すると、ランダムな整数を生成してソートします。
sleeper_kicker_v001.bat
@echo off
color 1E
rem **** **** **** **** **** **** **** **** **** **** **** 
rem **** **** **** **** **** **** **** **** **** **** **** 
echo.
echo ################################################################
echo.
echo sleep sort バッチです。実行しますか?
echo 中止する場合はCtl+C
echo 実行する場合は
pause

echo.
echo 実行します
echo.
echo ################################################################
echo.
color 3F
echo.
echo ************ 処理開始 ************
echo.

rem **** **** **** **** **** **** **** **** **** **** **** 
rem **** **** **** **** **** **** **** **** **** **** **** 
rem 時間取得
set CDATE=%date:~-10,4%-%date:~-5,2%-%date:~-2,2%
set CTIME=%time: =0%
set CTIME=%CTIME:~0,2%-%CTIME:~3,2%-%CTIME:~6,2%

rem ログファイル設定
set CDIR=%~dp0
set LFILE=%CDIR%sleepsort_%CDATE%_%CTIME%.txt

echo. >> %LFILE%
echo start  : %DATE% %TIME% >> %LFILE%
echo ******************************************** >> %LFILE%

rem **** **** **** **** **** **** **** **** **** **** **** 
rem **** **** **** **** **** **** **** **** **** **** **** 

SETLOCAL enabledelayedexpansion
set /a RN1=%RANDOM%*11/32768+1
set /a RN2=%RANDOM%*11/32768+1
set /a RN3=%RANDOM%*11/32768+1
set /a RN4=%RANDOM%*11/32768+1
set /a RN5=%RANDOM%*11/32768+1
set /a RN6=%RANDOM%*11/32768+1
set /a RN7=%RANDOM%*11/32768+1
set /a RN8=%RANDOM%*11/32768+1
set RNALL=%RN1%,%RN2%,%RN3%,%RN4%,%RN5%,%RN6%,%RN7%,%RN8%
echo randnum : %RNALL%
echo randnum : %RNALL% >> %LFILE%
echo.

start /MIN %CDIR%sleeper_v001.bat %RN1% %LFILE%
start /MIN %CDIR%sleeper_v001.bat %RN2% %LFILE%
start /MIN %CDIR%sleeper_v001.bat %RN3% %LFILE%
start /MIN %CDIR%sleeper_v001.bat %RN4% %LFILE%
start /MIN %CDIR%sleeper_v001.bat %RN5% %LFILE%
start /MIN %CDIR%sleeper_v001.bat %RN6% %LFILE%
start /MIN %CDIR%sleeper_v001.bat %RN7% %LFILE%
start /MIN %CDIR%sleeper_v001.bat %RN8% %LFILE%

echo. >> %LFILE%
echo ******************************************** >> %LFILE%
echo end    : %DATE% %TIME% >> %LFILE%
echo by %0 >> %LFILE%
echo ******************************************** >> %LFILE%
echo. >> %LFILE%
echo **sorted** >> %LFILE%
echo. >> %LFILE%

rem **** **** **** **** **** **** **** **** **** **** **** 
rem **** **** **** **** **** **** **** **** **** **** **** 
echo.
echo ************ 処理終了 ************
echo.

color
echo 10秒後に閉じます。ソート結果は数秒後に確認して下さい。
ping 127.0.0.1 -n 10 2> nul 1>&2
exit
sleeper_v001.bat
@echo off

ping 127.0.0.1 -n %1 2> nul 1>&2
echo %1 >> %2

exit

その他

  • 色々なアルゴリズムがソートの速度を競う中で、lazy sortとかsleep sortとか呼ばれる凄い発想のアルゴリズムです。個人的には、その発想はなかった( ゚Д゚)ってなって試してみたものです。

以上

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?