SANANEBLOG
Box PR

Box Driveのフォルダパスを一瞬でクリップボードにコピーする方法

記事内に商品プロモーションを含む場合があります

はじめに

今回の記事では、Boxの上の任意のファイルまでにフォルダパスを一瞬でクリップボードにコピーする方法を紹介します。

皆さんは複数のユーザでBox利用を行う際、相手にファイルの共有を行いたいときにはそのファイルのパスを送ることはないでしょうか?

特にWindowsユーザでBox Driveをメインで使用しているときには、エクスプローラーにファイルのパスを入力することで目的のファイルがあるフォルダまで移動ができるため便利です。

ですが、このファイルのパスを送るときにいちいちエクスプローラーのバーをクリックして、「Box\〜〜」のところだけを選択してコピーするのは面倒ではないでしょうか?

実はこの作業、バッチファイルを利用することで一瞬でコピーすることができます!

今回はWindowsユーザとBox Driveを利用している方を対象として、バッチファイルの作成と利用方法を紹介します。

バッチファイルとは、Windowsで一連のコマンドを自動的に実行するためのコードが書かれたファイルです。

テキストエディタ(例:メモ帳)を使用してコマンドを記述し、ファイルの拡張子を .bat にすることで、ダブルクリックやファイルのドラッグ&ドロップなどで簡単に実行できるプログラムを作成することができます。

動作イメージ

SANANE

まずは、動作イメージを簡単に紹介します。

まず、今回作成するバッチファイルをデスクトップなどに配置します。

その後、Box Drive上にあるファイルを配置したバッチ(bat)にドラッグ&ドロップします。

画像は[C:\Users\ユーザ名\Box\テストフォルダ\テストサブフォルダ\テスト.txt]のファイルパスにファイルを保存していますが、

クリップボードには、[Box\テストフォルダ\テストサブフォルダ\]

がコピーされます。

SANANE

クリップボードにコピーされるため、[Ctrl + V]ですぐに貼り付けることができます。

パスをコピーするときにファイル名まで含めていると、エクスプローラーに貼り付けてEnterを押したタイミングでファイルを開いてしまうため、今回はパスにファイル名を含めていません。

ファイル名まで指定した場合のスクリプトは最後に補足として載せています。

作成方法

まず、デスクトップなどにテキストファイルを作成します。

その後、テキストファイルを開いて編集します。

以下のコードをコピーして貼り付けて保存してください。

@echo off
setlocal enabledelayedexpansion

:: Get the file path
set file=%1

:: Extract folder path
set folderPath=%~dp1

:: Get current user's profile path dynamically
set userProfilePath=%USERPROFILE%\

:: Remove the user profile part from the path
set modifiedPath=!folderPath:%userProfilePath%=!

:: Copy the modified path to clipboard
echo !modifiedPath! | clip

echo Modified path copied to clipboard: !modifiedPath!

endlocal

保存したらテキストファイルは閉じます。

その後、[ファイル名.txt]から[ファイル名.bat]に変更してください。

[拡張子を変更すると、ファイルが使えなくなる可能性があります。変更しますか?]は「はい」をクリックします。

以上で完成です。

補足:ファイル名も含めたパスの取得

ファイル名も含めたパスをコピーしたい場合は以下のスクリプトでバッチファイルを作成してください。

@echo off
setlocal enabledelayedexpansion

:: Get the full file path including the file name
set filePath=%1

:: Get current user's profile path dynamically
set userProfilePath=%USERPROFILE%\

:: Remove the user profile part from the path
set modifiedPath=!filePath:%userProfilePath%=!

:: Copy the modified path to clipboard
echo !modifiedPath! | clip

echo Modified path copied to clipboard: !modifiedPath!

endlocal