アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (6件)

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

こんな感じで、一応動きますが

単純に組み合わせただけなので、クリップボードに文字列以外のデータやファイル名に利用できない文字列などのエラー処理はされていません
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

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

お礼日時:2012/12/28 07:53

それではその他の方法



少々強引な処理になりますが
************

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_18 …

環境によってWScript.Sleepのタイムを調整しないと正しく実行されない可能性があります
(基本的に長くすればするほど確実に動作しますが、その分処理に時間がかかります)

その他の方法としては

エクセルでフォルダ作成の自動実行マクロを作成し、VBSから非表示で呼び出す方法もあります
(この場合は処理速度も早く、処理が画面上に表示されないが、エクセルがないと実行できない)
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/01/01 08:49

>実行時に”クリップボードへのアクセスを許可しますか”というメッセージが出るの


ですが、これを出ないように出来ないのでしょうか?

これを出さないようにするにはIE⇒ツール⇒インターネットオプションのセキュリティ設定でスクリプト処理の無条件許可が必要になるので、セキュリティ上お薦めできません
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/01/01 08:48

>大元の質問にあるファルダを作成することを言っています



スクリプトを実行すればフォルダが作られるはずですが、出来ていませんか?

VBでもクリップボードの内容取得はできないので、一部IEの機能を利用しています
スクリプト実行時にIEから【スクリプトを実行しますか】のメッセージは出ていませんでしたか?

メッセージが出ていないようなら、スクリプトがブロックされている可能性があるため、IEセキュリティ設定とセキュリティソフトの設定を変更する必要があります
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
フォルダはちゃんと出来ていました。最初、デスクトップで他のアイコンと紛れて分かりませんでした。

実行時に”クリップボードへのアクセスを許可しますか”というメッセージが出るのですが、これを出ないように出来ないのでしょうか?

お礼日時:2012/12/28 17:10

>フォルダはどうやって作るのでしょうか?拡張子がbatのバッチファイルしか知らないので



フォルダ?
多分VBスクリプトファイルの事かと推測して

通常のバッチファイルと同様にメモ帳などに貼り付け、拡張子vbsで保存
実行手順はバッチファイルと同じ

ちなみに大元の質問内容ですが


>フォルダを作成し、ファオルダの名前にクリップボードにコピーされている文字を使いたい

この操作自体、新しいフォルダーの作成先で
右クリック>新規作成>フォルダ>反転している名前の上で右クリック>貼り付け
とマウス操作のみ5回クリックするだけで終了しますが、バッチ処理する必要性が有るのでしょうか?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

>フォルダ?
>多分VBスクリプトファイルの事かと推測して

こうではなくて大元の質問にあるファルダを作成することを言っています。


>この操作自体、新しいフォルダーの作成先で
右クリック>新規作成>フォルダ>反転している名前の上で右クリック>貼り付け
とマウス操作のみ5回クリックするだけで終了しますが、バッチ処理する必要性が有るのでしょうか?

マウスを5回操作せずに1回でやりたいのです。
ですからバッチファイルでフォルダを作成したくて、そのフォルダ名はクリップボードから持ってきたいのです。

お礼日時:2012/12/28 11:09

ググってみましょう。


参考サイトとかいっぱいひっかかりますよ

参考URL:http://www.fpcu.jp/dosvcmd/bbs/log/cat1/4-1622.h …
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/12/27 18:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!