• ベストアンサー

バッチファイルでクリップボードの文字を使う

バッチファイルにて フォルダを作成し、ファオルダの名前にクリップボードにコピーされている文字を使いたいのですが、お分かりの方、教えてください。お願いいたします。

  • mk1234
  • お礼率94% (1832/1940)

質問者が選んだベストアンサー

  • ベストアンサー
  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.2

DOSコマンドではクリップボードの内容を取り込むコマンドが無いので 標準のままでは、バッチ処理は不可能です クリップボードの操作が可能な外部プログラムが必要になります ということで、VBスクリプトで同様の動作を実現できるものを http://www.whitire.com/vbs/tips0170.html http://vbscript.infopos.net/p/000035.html 上記サイトのサンプルを合体させて ------ Option Explicit On Error Resume Next Dim objFS Dim objIE Dim strCbData Dim str_path Dim Fname1 Set objFS = CreateObject("Scripting.FileSystemObject") Set objIE = CreateObject("InternetExplorer.Application") If Err.Number = 0 Then objIE.Navigate("about:blank") strCbData = objIE.document.parentwindow.clipboardData.GetData("text") Fname1 = ".\" & strCbData str_path = objFS.CreateFolder(Fname1) MsgBox str_path objIE.Quit Else WScript.Echo "エラー:" & Err.Description End If Set objIE = Nothing ------ こんな感じで、一応動きますが 単純に組み合わせただけなので、クリップボードに文字列以外のデータやファイル名に利用できない文字列などのエラー処理はされていません

mk1234
質問者

お礼

回答ありがとうございます。 これでクリップボードの情報を取得出来ることは確認できましたが、フォルダはどうやって作るのでしょうか?拡張子がbatのバッチファイルしか知らないので、よろしくお願いいたします。

その他の回答 (5)

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.6

それではその他の方法 少々強引な処理になりますが ************ dim Txtfile dim WShell Txtfile = "C:\Users\ユーザ名\Desktop" ’ユーザ名をご自身のユーザ名に変更 Set WShell = WScript.CreateObject("WScript.Shell") WShell.Run "explorer """ & Txtfile & """" WScript.Sleep(2000) WShell.SendKeys "+^{F10}" 'メニュー画面表示 WScript.Sleep(200) WShell.SendKeys "X" '新規作成 WScript.Sleep(200) WShell.SendKeys "F" 'フォルダ WScript.Sleep(3000) WShell.SendKeys "^V" '貼付け WScript.Sleep(1000) WShell.SendKeys "{ENTER}" '決定 WScript.Sleep(500) WShell.SendKeys "%{F4}" '強制終了 ************ Explorer.exeでディスクトップを開く あとはショートカットキーの操作をSendKeysで実行 http://www.accessclub.jp/samplefile/help/help_187_2.htm 環境によってWScript.Sleepのタイムを調整しないと正しく実行されない可能性があります (基本的に長くすればするほど確実に動作しますが、その分処理に時間がかかります) その他の方法としては エクセルでフォルダ作成の自動実行マクロを作成し、VBSから非表示で呼び出す方法もあります (この場合は処理速度も早く、処理が画面上に表示されないが、エクセルがないと実行できない)

mk1234
質問者

お礼

何度も回答ありがとうございました。

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.5

>実行時に”クリップボードへのアクセスを許可しますか”というメッセージが出るの ですが、これを出ないように出来ないのでしょうか? これを出さないようにするにはIE⇒ツール⇒インターネットオプションのセキュリティ設定でスクリプト処理の無条件許可が必要になるので、セキュリティ上お薦めできません

mk1234
質問者

お礼

回答ありがとうございます。 batファイルだと、出ないのに、色々違いがあるのですね。

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.4

>大元の質問にあるファルダを作成することを言っています スクリプトを実行すればフォルダが作られるはずですが、出来ていませんか? VBでもクリップボードの内容取得はできないので、一部IEの機能を利用しています スクリプト実行時にIEから【スクリプトを実行しますか】のメッセージは出ていませんでしたか? メッセージが出ていないようなら、スクリプトがブロックされている可能性があるため、IEセキュリティ設定とセキュリティソフトの設定を変更する必要があります

mk1234
質問者

お礼

回答ありがとうございます。 フォルダはちゃんと出来ていました。最初、デスクトップで他のアイコンと紛れて分かりませんでした。 実行時に”クリップボードへのアクセスを許可しますか”というメッセージが出るのですが、これを出ないように出来ないのでしょうか?

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.3

>フォルダはどうやって作るのでしょうか?拡張子がbatのバッチファイルしか知らないので フォルダ? 多分VBスクリプトファイルの事かと推測して 通常のバッチファイルと同様にメモ帳などに貼り付け、拡張子vbsで保存 実行手順はバッチファイルと同じ ちなみに大元の質問内容ですが >フォルダを作成し、ファオルダの名前にクリップボードにコピーされている文字を使いたい この操作自体、新しいフォルダーの作成先で 右クリック>新規作成>フォルダ>反転している名前の上で右クリック>貼り付け とマウス操作のみ5回クリックするだけで終了しますが、バッチ処理する必要性が有るのでしょうか?

mk1234
質問者

お礼

回答ありがとうございます。 >フォルダ? >多分VBスクリプトファイルの事かと推測して こうではなくて大元の質問にあるファルダを作成することを言っています。 >この操作自体、新しいフォルダーの作成先で 右クリック>新規作成>フォルダ>反転している名前の上で右クリック>貼り付け とマウス操作のみ5回クリックするだけで終了しますが、バッチ処理する必要性が有るのでしょうか? マウスを5回操作せずに1回でやりたいのです。 ですからバッチファイルでフォルダを作成したくて、そのフォルダ名はクリップボードから持ってきたいのです。

  • yukitakao
  • ベストアンサー率44% (16/36)
回答No.1

ググってみましょう。 参考サイトとかいっぱいひっかかりますよ

参考URL:
http://www.fpcu.jp/dosvcmd/bbs/log/cat1/4-1622.html
mk1234
質問者

お礼

回答ありがとうございます。 残念ながら参考サイトを見ても、良くわからないので、質問に対する回答を具体的にお願いします。

関連するQ&A

  • 日付と現在時刻をバッチファイルでクリップボードへ

    質問させて頂きます。 パソコンでの作業中、設定したショットカットキーを押すことによって、 自動的に、現在の日付と時刻をクリップボードにコピーする方法を教えてください。 Ctrl+Alt+Zなどを押すことにより、 2012.03.28 2312 という文字列がクリップボードに保存される、というのが理想的です。 2012年3月28日でしたら2012.03.28、 そして半角スペースをひとつはさんで、 23時12分でしたら2312、 これをつなげて、2012.03.28 2312、こういう具合です。 仕事で作成したファイルのファイル名を、上記のような名前にして保存しているのですが、 多い日で100個を超えることがあります。 手入力でできないこともないのですが、 ショートカットキーを押すだけでファイル名を作成してくれるのであれば、 あとは貼り付けるだけで終わり、効率よく仕事が進められます。 ちなみに、PCはWindows7の32bitと64bitです。 どうかお力をお貸しください。 よろしくお願いします。

  • クリップボードとは

    文字をコピーすると「クリップボードにコピーしました」と出るのですが、どこにクリップボードはあるのでしょうか。 F805を使ってます。

  • クリップボード系ソフトにバッチ処理でデータをコピーさせたい

    30000ファイルほどあるテキストファイルの中身をファイルを開くことなくコピーし、ブラウザのとあるフォームにコピーしたいと思っています。 今の手順は クリップボード系のソフト「クリップNOTE」を起動 ↓ 下記の質問で教えてもらったtxt2clps.exeというソフトでファイルの中身をコピー http://oshiete1.goo.ne.jp/qa5154547.html ↓ ブラウザのフォームにペースト しているのですが、 1つのフォルダに入ったテキスト100ファイルを1つ1つtxt2clps.exeのアイコンの上にドラッグするのが大変なので一気にtxt2clps.exeに読み込ませるバッチを作りました。 バッチの中身は for %%A in (*.html) do txt2clps.exe %%A という一文です。 ですが、これでうまくすべて100ファイルを処理してくれたりしてくれなかったりします。 バッチをたたいても5ファイルくらいしか処理してくれないときもあります。(その規則性は分かりません) これを完璧に100ファイル処理するようにするには何か追記したほうがよい文言があるのでしょうか? また、フォルダに入ったファイル名は001~100.htmlなので、001から順に処理してほしいのですが順番がばらばらだったりして実際にブラウザに貼り付けるときに結局ファイルの中身を開いて見ないと分からないという事態になってしまっています。 (バッチのときにバーって現れる黒いウィンドウを凝視している感じだと順番に処理しているようなのですが・・・) バッチ処理を001.htmlから順にするようには出来ないでしょうか? ややこしいですが、どなたかお分かりになる方よろしくお願いいたします。

  • ファイル名からクリップボードにコピーしたい

    vc++で、ファイル名からクリップボードにコピーして、別のフォルダにファイルをコピーしたいのですが上手くできません、サンプル的な物はどこかにありませんか?

  • Wordのクリップボード

    Wordで文字列をコピー(メニュー「編集」-コピー や Control+C)を行うと、 クリップボードに入ります。 しかし、コピーしてすぐ貼り付けを行うときでもクリップボードに入ります。 クリップボードにたくさんアイテム(文字列)が入っていると うざったいので、 できればコピー後すぐ貼り付けるものはクリップボードに入れたくないのですが、 クリップボードに入れるものとそうでないものを分けるにはどうすればよいですか。 また、クリップボードに入っているアイテムのうちの一部のみを消去する(選んだものだけクリア)にはどうすればよいですか。 Word2000です。

  • ファイルを開いてに読み込みとクリップボード経由との相違点

    文字コード VB2008でエディタの作成の勉強をしています。 質問は下記です。  ・このエディタでメモ帳などで作成したファイルを開いて読むと   文字コードの違いで全角文字が文字化けする。  ・しかしクリップボード経由でコピー、貼り付けを行うと文字化   けはおこらない。 VB2008はUnicodeなのでs-jis のファイルを読むと文字化けをするこ とはわかりますが、クリップボード経由ではなぜ文字化けしないの でしょうか。  よろしくお願いします。

  • クリップボードからファイル名を取得

    クリップボードについて教えていただきたいと思います。 コピーを行うとクリップボードにはコピーした内容が保存されます。 そのコピーを行った内容のファイル名(できればstring型で)を取得する方法を教えていただけたらと思います。 文字列・保存されていない画像の場合にはファイル名は存在しないので、ファイル名の存在する画像やファイルについての方法をお願いします。

    • ベストアンサー
    • Java
  • バッチファイルを作りたい。

    こんにちは いまある作業をしていて、どうにか自動化できないかと調べていたら、 バッチファイルというものがあると知りました。 バッチファイルに、ファイルをドロップすると、そのファイルの名前のフォルダが作成され、 そのフォルダの中に、B,Cの2つのフォルダ、さらにフォルダBのなかに B1、B2、B3、B4の4つのフォルダが作成される。 というバッチファイルを作りたいです。 また、一度に複数のファイルをドロップしても、動くようにしたいです。 どなたか詳しい方、教えてください。 よろしくお願いします。

  • クリップボードへファイルの内容を取り込みたい(PowerToys)

    Win-XPユーザーです。 現在、幾つかのテキストファイルがあり、 目的によってファイルを選択し、内容をコピーして別のファイルへ張り付けています。 方法は、SendTo(PowerToys)でクリップボードへコピーしていますが、 このSendToの機能をバッチファイルで記載できたら、簡単かな( windowsボタン+r ⇒ バッチファイル )と思い調べていますが、 良い情報が見つかりませんでした。どなたか妙案はございませんでしょうか? ※他には、clipbrd.exeに ファイルを渡せば簡単に出来るかな? と安易に思ったのですが、これは、旨く出来ませんでした。

  • クリップボードに貼り付けた名前でリネームしたいです

    ある文字列をコピーします。ここでは「abc.jpg」とします。 あるファイル名をクリップボードにコピーされた名前と置き換えたいですが、一発でやる簡単なフリーソフトウェアはないでしょうか? ファイルを選択して右クリック、もしくは、ショートカットキーで一発でファイル名を置き換えてくれる便利なツールがありましたらお教えください。 お願いいたします。

専門家に質問してみよう