Windowsのクリップボードをコマンドで空にしたい場合は、batから clip < nul を実行します。clip は標準入力の内容をクリップボードへ送るコマンドで、nul から空の入力を渡すことで、現在のクリップボード内容を空文字で置き換えられます。
この記事では、clip < nul の最小例、batファイルに組み込む書き方、PowerShellでの代替、Windowsのクリップボード履歴との違い、うまく消えないときの確認ポイントまでまとめます。英語圏の検索で見かける does "clip < nul" clear clipboard windows という疑問にも、実務目線で答えます。
clip < nul は、現在のクリップボードを空にする用途で使えます。ただし、Windowsのクリップボード履歴やクラウド同期の履歴まで完全削除する操作ではありません。目的別の使い分け早見表
| 目的 | 書き方 | 向いている場面 |
|---|---|---|
| 現在のクリップボードを空にする | clip < nul |
batで最短に消したい場合 |
| コピー後にユーザー操作を待ってから消す | pause 後に clip < nul |
貼り付け完了後に後始末したい場合 |
| PowerShell処理の中で消す | Set-Clipboard -Value '' |
PowerShell主体のスクリプト |
| クリップボード履歴も消す | Windowsの履歴画面や設定で削除 | 履歴・同期まで含めて管理したい場合 |
ポイントは、clip < nul が担当する範囲を「現在貼り付けられる内容のクリア」として捉えることです。履歴や同期データまで含めて完全消去したい場合は、batコマンドだけで完結させないほうが安全です。
clip < nulでクリップボードを空にする最小例
コマンドプロンプト、またはbatファイルで次の1行を実行します。
clip < nul
batファイルとして保存するなら、次のように書けます。
@echo off clip < nul echo クリップボードを空にしました。
コピーしていた文字列、パス、コマンド出力などを処理後に残したくない場合に使いやすい書き方です。文字列をクリップボードへコピーする基本は、バッチファイルでクリップボードに文字列をコピーする方法で詳しく解説しています。
clip < nulの意味
clip は、標準入力から受け取ったテキストをWindowsのクリップボードへ送るコマンドです。< は入力リダイレクト、nul は何も返さない特殊デバイスです。
| 部分 | 意味 |
|---|---|
clip |
標準入力をクリップボードへ送る |
< |
右側の入力元をコマンドへ渡す |
nul |
空の入力元として使える特殊デバイス |
つまり clip < nul は、空の入力を clip に渡す命令です。その結果、クリップボードに空のテキストが入るため、直前にコピーしていた内容を貼り付けられない状態にできます。
空になったか確認する方法
動作確認する場合は、一度テスト文字列をコピーしてから clip < nul を実行し、PowerShellの Get-Clipboard で確認すると分かりやすいです。
@echo off echo test-value|clip powershell -NoProfile -Command "Get-Clipboard" clip < nul powershell -NoProfile -Command "Get-Clipboard"
最後の Get-Clipboard で何も表示されなければ、現在のクリップボードは空になっています。ただし、クリップボード履歴画面に過去の項目が残るかどうかは別問題です。
batファイルの最後に組み込むテンプレート
一時的にパスワード、トークン、接続文字列、ファイルパスなどをクリップボードへ入れる処理では、最後にクリア処理を入れておくと安全です。
@echo off set "TEXT=C:\work\report.txt" echo %TEXT%|clip echo 必要な場所へ貼り付けてください。 pause clip < nul echo クリップボードを空にしました。
pause のあとにクリアすると、ユーザーが貼り付ける時間を確保してから消せます。待機の書き方を増やしたい場合は、バッチファイルで処理を一時停止する方法も参考になります。
clear clipboard windowsとして使う場合の注意点
clip < nul は、Windowsで手早く現在のクリップボードを空にする方法として使えます。一方で、次の点は分けて考える必要があります。
- 現在のクリップボード内容は空にできる
- Windowsのクリップボード履歴そのものを削除する操作ではない
- 組織設定やクラウド同期で保持された履歴までは制御できない
- 画像やリッチテキストを含む形式でも、通常の貼り付け対象は空になる
検索語としての clear clipboard windows に対しては、「現在の貼り付け内容を空にするなら clip < nul、履歴削除まで必要ならWindows側の履歴管理も確認する」と整理すると実務で迷いにくくなります。
クリップボード履歴は別に確認する
Windows 10以降では、Windows + V のクリップボード履歴が有効になっている場合があります。clip < nul は現在のクリップボードを空にするコマンドであり、履歴画面に残った過去の項目まで必ず消すものではありません。
履歴まで消したい場合は、Windowsのクリップボード履歴画面や設定画面で削除します。機密情報を扱う運用では、bat側のクリア処理だけでなく、クリップボード履歴を無効化する運用も検討してください。
PowerShellで空にする代替方法
PowerShellを使える環境なら、Set-Clipboard に空文字を渡す方法もあります。
powershell -NoProfile -Command "Set-Clipboard -Value ''"
batから呼び出す場合は次のように書けます。
@echo off powershell -NoProfile -ExecutionPolicy Bypass -Command "Set-Clipboard -Value ''"
通常は clip < nul のほうが短く、追加の起動コストも少ないです。PowerShellでほかの処理もまとめて行う場合だけ、Set-Clipboard を選ぶとよいでしょう。
機密情報を扱うときの後始末テンプレート
クリップボードへ一時的に機密情報を入れる運用では、処理の正常終了時だけでなく、中断時にもできるだけクリア処理へ流れるようにしておくと安心です。
@echo off setlocal set "SECRET=sample-token" echo %SECRET%|clip echo 必要な場所へ貼り付けてください。 choice /c YN /m "貼り付けが終わりましたか" clip < nul set "SECRET=" echo クリップボードと変数をクリアしました。 endlocal
この例では、クリップボードだけでなく変数 SECRET も空にしています。batの変数はプロセス終了で消えますが、処理の途中でログ出力やデバッグ表示を追加することもあるため、後始末の場所を明確にしておくと事故を減らせます。
タスクスケジューラやリモート実行での注意
クリップボードは、基本的にユーザーの対話セッションに紐づく機能です。タスクスケジューラで「ユーザーがログオンしているかどうかにかかわらず実行する」を選んだ場合や、サービス・リモート実行の文脈では、想定したユーザーのクリップボードを操作できないことがあります。
batファイルの場所を基準にして実行したい場合は、バッチファイルで相対パスを指定する方法も合わせて確認してください。タスクスケジューラ経由では、カレントディレクトリの違いで別の問題が混ざることがあります。
うまく空にならないときの確認ポイント
| 症状 | 確認すること |
|---|---|
| 貼り付けると前の内容が出る | 別アプリが直後に再コピーしていないか確認する |
| 履歴に前の内容が残る | clip < nul は履歴削除ではないため、Windowsの履歴画面で削除する |
| タスク実行時だけ効かない | 対話ユーザーのセッションで実行されているか確認する |
| コマンドが見つからない | C:\Windows\System32\clip.exe が使える環境か確認する |
実務での使い分け
単に現在のクリップボードを空にするだけなら、clip < nul が最短です。ユーザーに貼り付けてもらってから消すなら pause と組み合わせます。Web画面のボタンからクリップボードを扱う場合は、batではなくJavaScriptのClipboard APIを使います。
ブラウザ側の実装は、JavaScriptでクリップボードにコピーする方法で解説しています。batはローカルPC作業の自動化、JavaScriptはWebページ上の操作、と分けて考えると整理しやすいです。
関連ページ
よくある質問
Does "clip < nul" clear clipboard on Windows?
Yes. clip < nul sends empty input to clip.exe, so the current Windows clipboard is replaced with empty text. It clears the current paste target, but it does not necessarily delete Windows clipboard history.
clip < nulは本当にWindowsのクリップボードを空にしますか?
はい。現在のクリップボードに空のテキストを入れることで、通常の貼り付け対象を空にできます。
クリップボード履歴も消えますか?
履歴の完全削除とは別です。Windowsのクリップボード履歴を有効にしている場合は、履歴画面や設定側で削除してください。
echo. | clip でも同じですか?
似ていますが、echo. は改行を送るため、厳密には空文字ではありません。空にする目的なら clip < nul を使うほうが明確です。
管理者権限は必要ですか?
通常は不要です。ただし、別ユーザーやサービスのセッションにあるクリップボードを操作する用途には向きません。
画像をコピーしていた場合も消せますか?
通常の貼り付け対象は空になります。ただし、アプリ側の独自履歴やWindowsのクリップボード履歴は別に扱われることがあります。
PowerShellのSet-Clipboardとどちらがよいですか?
batだけで完結するなら clip < nul が簡単です。PowerShell処理の一部として扱うなら Set-Clipboard -Value '' でも構いません。
まとめ
batでWindowsのクリップボードを空にするなら、まず clip < nul を使います。短く、標準コマンドだけで書けるため、コピー処理の後始末や機密情報を扱う簡易対策に向いています。
ただし、これは現在のクリップボードを空にする方法であり、Windowsのクリップボード履歴やクラウド同期の履歴まで必ず消す操作ではありません。履歴まで含めて管理したい場合は、Windows側の設定も合わせて確認しましょう。
