1
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?

More than 1 year has passed since last update.

所定の文字列を瞬時にClipboardに登録するPowerShellスクリプト

Last updated at Posted at 2023-09-23

0. 動機 (スクリプトのパスを通している前提)

Windowsキー + Rの「ファイル名を指定して実行」から、よく使う文字列(打つのちょっとめんどくさいやつ)をClipboardに登録してすぐにペーストできると楽だな、と思ったんで作ってみました。


ユーザー辞書登録する、という手もあるのですが、動的な内容(日付とか時間)とかの場合にはやり方が難しいと思うのでこのスクリプト使うと便利かなと思います。


一単語だけ登録するスクリプトと、複数語登録するスクリプトがあるのでそれぞれ解説します。

1. スクリプト概要・出力 (一単語版、複数語版共通)

  • スクリプト起動 (Windows + r → スクリプトのショートカット名入力 → Enter)
  • PSコンソールが立ち上がる (その後すぐ閉じる)
  • クリップボードに指定した単語が登録される

* 出力例は下記画像参照 (上:一単語、下:複数単語)

image.png
image.png

2. スクリプト全体像・解説 (一単語版)

#日付の取得(例:20230923という形式)
$dayNow = Get-Date -Format "yyyyMMdd"

#Clipboardに貼り付け
Set-Clipboard $dayNow

3. スクリプト全体像・解説 (複数単語版)

#登録単語1: 今日の日付
$dayNow = Get-Date -Format "yyyyMMdd"

#登録単語2: 現在時刻
$timeNow = Get-Date -Format "HH:mm"

#登録単語3: 適当な文字列
$hoge = "hoge"

#配列へ各変数を格納
$array =@($dayNow, $timeNow, $hoge)

#各変数をClipboardに登録
foreach($i in $array){

 Set-Clipboard $i

 Start-Sleep -Milliseconds 300 #下記Note1参照
}
  • Note1: foreachの最後にStart-Sleepを入れた理由は、このStart-Sleepが無いと登録が早すぎて最後の1語だけ登録されて見える状況(処理は3語してるのにClipboardには最後の1単語しか表示されない)になってしまうからです。色々やって300 MillSecondが一番短い待機時間かな、と思いました。

参考:Set-Clipboardのヘルプ

3. おわりに

基本自分用メモですがどこかの誰かの役に立てば幸いです。Qiitaは編集しやすくていいですね。

私は非IT企業の非IT職種(専攻も非IT)の人間なのですが、PowerShellの件気軽に相談できる人が周り(社内)にいないこともあり、もし「こここうやってやるともっと楽だよ」とか「こういう改善加えてみました」みたいな意見もしあれば是非教えてください!

4. 余談

  • PowerShellスクリプトをダブルクリックで実行できるようにしたい場合は下記参照

  • パスを通してスクリプトをさらに素早く起動したい場合は下記参照

1
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
1
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?