本記事は、めんどい太郎の Advent Calendar 2025 15日目の記事です。
はじめに
みなさん、ターミナルでパスワードをコピペしてませんか?
私はしてました。
そこで、今回は1Password CLIの環境変数機能を使ってパスワードコピペから卒業したいと思います!
ただ、普通に使う分にはドキュメントがすごくわかりやすいのでバッチファイルに絞って説明します。
(さっさと答えが知りたい方は「ではどうすればいいのか」を見てください。)
1Password CLIの環境変数機能とは
1Password CLIには、環境変数を設定しておくことで、コマンド実行時にパスワードと置き換えてくれる機能があります。
詳しくは公式ドキュメントが映像付きで分かりやすいのでぶん投げておきます()
Windowsのバッチファイルで使う
この機能、実はバッチファイルで使うには少しだけ面倒なのです
Linuxのシェルスクリプトはサンプルがあるので簡単ですが、Windowsのバッチファイルだと簡単にはいきません。
例えば、私はこの機能をmcrconというアプリケーションで使いたいのですが次のようにしても失敗します。
@echo off
set RCON_PASS=op://Personal/*************
op run -- .\mcrcon.exe -H ****** -t -p %RCON_PASS%
pause
実行してみると、1Passwordの認証は行われるのですが置き換えられていないか空白のままになってしまい、RCONの認証に失敗します。
> .\test.bat
Authentication failed!
ここで、ドキュメントをちゃんと読むとスクリプトファイルに読み込む場合には別の方法を用いる必要があることが示されています。
(皆さん気を付けてください)
何やらop readでパスワードを読み込んでその結果を環境変数に入れる必要があるようです。
シェルスクリプトだと単純にKEY="$(op read op://***)"でいいので楽ですがバッチファイルではそうもいきません。
ではどうすればいいのか
調べるとこんな記事がありました!ありがたい!
ということで次のようにすればよいです。
@echo off
for /f "usebackq" %%A in (`op read op://******`) do set RCON_PASS=%%A
pause
面倒ですね...()
これで無事に環境変数にパスワードが入りました。
終わりに
ちょっとだけつまずいたので記事にしてみました。
(クソ記事ですまんかった)
誰かの役に立てれば幸いです!
それでは!