C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ファイル一覧をクリップボードに取得する方法

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■103777 / inTopicNo.1)  ファイル一覧をクリップボードに取得する方法
  
□投稿者/ 質問者 (1回)-(2025/07/16(Wed) 16:54:02)

分類:[Windows 全般] 

2025/07/16(Wed) 16:54:59 編集(投稿者)

お世話になります

動作環境 WIN10
開発言語 ウインドウズのバッチファイル


ファイル一覧をクリップボードに取得する方法が下記のHPに紹介されています

https://shikumika.org/entry/windows-bat-fileList


HPの記載どおりにSendtoにバッチファイルのショートカットを保存して
右クリックの「送る」から実行していますが、うまく取得できません

まずCMDが立ち上がりません

こちらの実行環境が悪いのでしょうか

--------------------------------------
@echo off
setlocal enabledelayedexpansion

:: ファイル名のリストを変数に格納
set "fileList="

for %%F in (%*) do (
set "fileList=!fileList!%%~nxF^&echo."
)

:: 変数の内容をクリップボードにコピー
echo !fileList! | clip

:: メッセージを表示
echo 選択したファイルの名前一覧がクリップボードにコピーされました。

:: 一時停止
pause

--------------------------------------

引用返信 編集キー/
■103780 / inTopicNo.2)  Re[1]: ファイル一覧をクリップボードに取得する方法
□投稿者/ 魔界の仮面弁士 (3866回)-(2025/07/16(Wed) 17:33:24)
No103777 (質問者 さん) に返信
> ファイル一覧をクリップボードに取得する方法が下記のHPに紹介されています

サイトにも書かれている通り、標準の [パスのコピー] だと
ダブルクォーテーション付きフルパスになってしまうため
それを「%~nx変数」でファイル名だけの一覧にするという手法ですね。


> HPの記載どおりにSendtoにバッチファイルのショートカットを保存して
> 右クリックの「送る」から実行していますが、うまく取得できません
>
> まずCMDが立ち上がりません

バッチファイル ( *.cmd もしくは *.bat ) を、ネットワーク共有ドライブなどに配置しませんでしたか?
ネットワーク上からコピーされたファイルを実行しようとするとブロックされてしまうため、
バッチファイルのプロパティを開いて、属性欄の下にブロックの記載があれば、許可しておく必要があります。
※もしくは、PowerShell で Unblock-File しておく。
引用返信 編集キー/
■103781 / inTopicNo.3)  Re[2]: ファイル一覧をクリップボードに取得する方法
□投稿者/ 質問者 (2回)-(2025/07/17(Thu) 16:41:22)
No103780 (魔界の仮面弁士 さん) に返信

ありがとうございます


> バッチファイル ( *.cmd もしくは *.bat ) を、ネットワーク共有ドライブなどに配置しませんでしたか?

デスクトップにおいています


> ネットワーク上からコピーされたファイルを実行しようとするとブロックされてしまうため、
> バッチファイルのプロパティを開いて、属性欄の下にブロックの記載があれば、許可しておく必要があります。
> ※もしくは、PowerShell で Unblock-File しておく。

デスクトップで新規作成したテキストに、前述のコードを貼付けしてリネームしたものです
ブロックの記載はありませんでした


右クリックの送るから実行しても反応しませんが
デスクトップでバッチファイルをダブルクリックで実行すると
コマンドプロンプトに下記が表示されて終了します
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
選択したファイルの名前一覧がクリップボードにコピーされました
続行するには何かのキーを押してください
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−


そしてクリップボードには下記の文字列が格納されています
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
ECHO は <ON> です。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−



何か、原因と想定できるものはありませんでしょうか
引用返信 編集キー/
■103782 / inTopicNo.4)  Re[3]: ファイル一覧をクリップボードに取得する方法
□投稿者/ 魔界の仮面弁士 (3867回)-(2025/07/17(Thu) 17:19:37)
No103781 (質問者 さん) に返信
> そしてクリップボードには下記の文字列が格納されています
> −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
> ECHO は <ON> です。
> −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

ダブルクリックで実行するのではなく、
バッチファイルにファイル群をドラッグ&ドロップしてください。


ファイル数 0 の時に「ECHO は <ON> です。」が出力されるのを
抑制したいのであれば、下記のようにします。

【修正前】
echo !fileList! | clip
echo 選択したファイルの名前一覧がクリップボードにコピーされました。


【修正後】
if defined fileList (
echo !fileList! | clip
echo 選択したファイルの名前一覧がクリップボードにコピーされました。
) else (
echo ファイルが指定されませんでした。
)
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ