ズンドコキヨシに移動するバッチファイル
記事を書いてるうちに二番煎じとしてもしょぼいなーと思えてきたのでQiitaじゃなくてこっちに書くことに。簡単に言うと、ズンズンズンズンドコが揃ったらキ・ヨ・シ!って出力するあれです。先行研究は以下を参照。
@echo off if not exist ズン mklink /j ズン . if not exist ドコ mklink /j ドコ . if not exist キ・ヨ・シ! mklink /j キ・ヨ・シ! . :reset cd %~dp0 :loop (if %random% geq 16384 (cd ズン) else (cd ドコ)) 2>nul || goto :reset cd | find "ズン\ズン\ズン\ズン\ドコ" > nul || goto :loop cd キ・ヨ・シ! 2>nul || goto :reset
文字列として出力する代わりに、カレントディレクトリを移動しています。
終わった後で explorer .
とやればエクスプローラでも開ける。
ジャンクションを使っているので、実際にそこまで深いディレクトリ構造が作成されるわけではありません。が、だからどうということもあまりないです。
その関係であまりに階層が深くなるとcdがエラーを吐くので、そういう時は最初からやり直します。これはファイルパスの文字数制限とは別の話で、ひとつのパスの中に reparse point は31個までしか含むことができないという制限によるもの。
と作ってはみたものの、出力が違うだけでバッチファイル自体の構造は他と変わらない。どうせファイルシステムを使うなら、仮想ファイルシステムで「ズン」「ドコ」ディレクトリを自由に開いていくと条件を満たしたところで「キ・ヨ・シ!」が現れるとかやりたい。シェル名前空間拡張かなー。