標準愚痴出力

個人的なIT作業ログです。もしかしたら一般的に参考になることが書いているかもしれません(弱気

batchfile

現在の WindowsTerminal の別タブで、ターミナル版 vim を開く

gvim でもいいんだけど、シェルと同じ WindowsTerminal のタブで開いていると、Ctrl-TAB だけでトグルでフォーカスを切り替えられたりして嬉しい (Alt-TAB だと、トグル対象にブラウザとか他のウインドウも含まれるので、ちょっと鬱陶しいのだ) 「WindowsT…

個人的インシデント:バッチファイルで %DATE% は安易に使うべきではなかった

事件 Windows のタスクバーに曜日を表示しようと思い、 コントロールパネル 日付、時刻、数値形式の変更 日付の短い形式 の末尾に曜日を意味する dddd を追加したら、タスクバーの表示内容だけでなく、CMD.EXE の疑似環境変数の %DATE% の中に「漢字」で曜日…

バッチファイル: exit コマンドの引数

$ type exit1.cmd @echo off setlocal call :a echo a=%ERRORLEVEL% call :b echo b=%ERRORLEVEL% endlocal exit /b :a exit /b "1" :b exit /b 1 結果 $ exit1 a=0 b=1 なんでやねん

GitHub のアカウントの名前を変更したら起きること

GitHubのユーザー名を変更してみた - 一から勉強させてください こちらの記事のリポートが参考になるが、それでもいろいろと想定外のことがあったので、記しておきたい。 正直失敗はしたくなかったので、それなりに備えた上で実施に踏み切った。だが白状する…

バッチファイルで「改行しない echo」

DOSコマンドで、好きな形式に「パスのコピー」する - Qiitaより echo -n MESSAGE 相当の改行しない echo は SET /P ="MESSAGE" < NUL で実現できるようだ。 この SET は本来 SET /P VAR=PROMPT という形式で、PROMPT を表示した後、ユーザが入力した値を環境…

Subversion で git show とか stash とかの動作をエミュレーション

あまりしっかりテストしていないので、ご利用はバックアップをとった上で、自己責任で… (自分の用事が終ったら放置モード) svn-show.cmd svn diff -r1000:1001 とかやっていられないので、svn-show 1001 で同じことをする。 @echo off setlocal if "%1" ==…

ネットワークドライブを維持したまま、管理者モードに昇格したコマンドプロンプトを起動する

setlocal call :"%1" endlocal exit /b :"install" powershell "start-process -FilePath 'cmd.exe' -ArgumentList ('/s /c '+[char]34+((get-wmiobject win32_networkconnection | %%{ 'net use '+$_.LocalName+' '+[char]34+$_.RemoteName+[char]34 }) -jo…

C:\Program Files へファイルをコピーするバッチファイルの作り方

一般ユーザでは C:\Program Files 以下へファイルをコピーすることはできないので、管理者権限で自分自身を起動しなおすようにする。 make.cmd setlocal set "EXE=%~dp0\bin\Release\HogeHoge.exe" call :"%1" endlocal exit /b :"install" powershell Start…

バッチファイルで strtok 的な変数の分割切り出し処理

%PATH% の各ディレクトリを一つずつ処理する(ここでは表示するだけ) @echo off setlocal set "PATHS=%PATH%" :loop for /F "tokens=1,* delims=;" %%I in ("%PATHS%") do ( echo %%I set "PATHS=%%J" ) if not "%PATHS%" == "" goto loop endlocal $ strto…

go get でインストールされる実行ファイル置き場をバッチファイルで得る

%GOPATH%\bin と書いてしまいがちだが %GOPATH% が未定義の時 %USERPROFILE%\go が代替として使われる %GOPATH% に複数のディレクトリが登録されている時 最初のディレクトリが使用される ので、一工夫必要だ。 @echo off setlocal if "%GOPATH%" == "" ( se…

vimとバッチファイルでtwitter と mstdn.jp にコマンドプロンプトから同時投稿する

dondon.cmd を実行すると vim が起動する。 投稿したい時は「:eq」 twtr.exe と mstdn.exe を使って、twitter と mstdn.jp に投稿する キャンセルする時は「:cq」か、ゼロバイトにしてから「:eq」 つ dondon.cmd @echo off setlocal set "DON=%TEMP%\don.txt…

PowerShell で書く、Go言語プログラムのリリース管理的なアレ(2)バージョン文字列の取得

方針としては リリースビルドの時は、テキストファイル(Misc\version.txt)に記載のテキスト スナップショットの時は、git describe --tags の結果 を使うことにしている。これはバッチファイルでも比較的簡単だ。 リリースビルドなら for /F %%I in (%~dp0Mi…