AIと戦って、あなたの人生のリスク診断 >>

普通のファイルはDIRで見ることができるのですが、ゴミ箱のなかの一覧を表示する事はできないでしょうか。バッチファイルを作ってみたいのです。もしバッチでは無理でも、VBSでこのコマンドを調べろ等のアドバイスでも歓迎致します。よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (5件)

★アドバイス


・昨日この質問を見ました。
 不可能だろうと思い回答は付かずに削除することになるのかと思いました。
 でも今見たら4人の回答が付いていてビックリです。
>普通のファイルはDIRで見ることができるのですが、
>ゴミ箱のなかの一覧を表示する事はできないでしょうか。
 ↑
 私は難しいと思います。
>バッチファイルを作ってみたいのです。もしバッチでは無理でも、
>VBSでこのコマンドを調べろ等のアドバイスでも歓迎致します。
 ↑
 バッチファイルで手軽に作れる代物ではありません。
 また、VBScript でも同じく難しいと思います。
・回答者 No.2 さんのシェル API の SHGetSpecialFolderPath()、や SHGetSpecialFolderLocation() でも
 ごみ箱のパスは取得できません。プログラミング言語で組んでみれば分かりますが、ごみ箱は特殊フォルダの
 中でもさらに特殊なフォルダです。つまり、これは回答者 No.4 さんのアドバイスにあるように COM の
 操作なのです。
・しっかりとしたプログラミング言語でもかなり面倒ですので VBスクリプトでは難しいと思いますが、
 ちょっとネット検索したら発見しました。あっ。見つかった!驚き。
 http://www.vector.co.jp/soft/win95/util/se358619 …→『RecycleBin.VBS』
 ↑
 これをダウンロードして VBS のソースを覗けばかなり参考になると思います。
・他にも
 http://www.vector.co.jp/soft/win95/util/se313491 …→『remove.VBS』
 も発見しました。これまた驚き!

最後に:
・google で『VBS ごみ箱』キーワードで検索したら意外にもあっさりと上記のリンクが
 発見できました。質問者さんもネット検索していろいろと調査してみて下さい。
・ちなみにごみ箱の CLSID は {645FF040-5081-101B-9F08-00AA002F954E} です。
 ごみ箱は C:\RECYCLER のフォルダ内に次のフォルダが存在します。→私の環境では。
 S-1-5-21-2542231476-452065110-2610527649-1003
 S-1-5-21-368736507-2188885818-133487176-1006
 S-1-5-21-484763869-1035525444-839522115-1003
 ↑
 このうち2つ目のフォルダにごみ箱に捨てたファイルが格納されます。
 2007/06/28 23:52 19,226,445 Dc63.zip
 2007/06/29 00:01 25,572,210 Dc64.zip
 2007/06/28 23:55 23,371,622 Dc65.zip
 2007/06/29 00:03 30,323,061 Dc66.zip
 2007/06/29 08:43 18,990,717 Dc67.zip
 2007/06/29 08:45 18,360,969 Dc68.zip
 2005/07/25 11:14 729 Dc69.html
 2007/06/29 08:49 12,816,675 Dc70.zip
 2007/06/29 09:05 2,660 Dc71.htm
 ↑
 私の環境です。
 見れば分かると思いますがファイル名が『DcXX.拡張子』となっています。
 ファイル名の情報は同じフォルダにある INFO2 という隠しファイルにバイナリ形式で
 記録されています。このファイルの詳細は調べないと分かりませんが回答者 No.4 さんが
 調べてたようです。そちらを参考に。
・以上。参考になりますかね?

参考URL:http://www.vector.co.jp/soft/win95/util/se358619 …
    • good
    • 0
この回答へのお礼

ご親切な回答ありがとうございます。
今回”私には少し荷が重そうです”という事が分かった事が収穫です。
いいものが出てくるまで、しばらく頭の中に温存しておきます。

お礼日時:2007/07/05 06:52

ごみ箱は以前少し調べたことがあったので,今回も少し調べてみました.



> WINDOWS CMDからゴミ箱のファイル一覧を表示したいのですが

↓ C++ の (怪しい?) ソースがあります.(2番目のリスト)
http://mtamaki.cocolog-nifty.com/blog/2005/01/po …

COM は使ったことがないのでよくわかりませんが,
IShellFolder インタフェースの EnumObjects,GetDisplayNameOf を
使うのがポイントのようです.

COM は VB からだともっと簡単に使えると思いますが,
VB も使ったことがないので説明は略.


●実際に動かして確かめてみたこと (Windows XP Pro SP2)

・ごみ箱のフォルダ名は,各ドライブの <drive>:\RECYCLER\<OwnerSID> (隠しフォルダ).

 <OwnerSID> は,ユーザの Security ID で,次のような文字列.

  "S-1-5-21-1234567890-123456789-123456789-1234"

 したがって複数ユーザが使用している PC では,ユーザごとに作られるはず.

 オブジェクトを識別するSIDとは?
 http://www.atmarkit.co.jp/fwin2k/win2ktips/307si …

 <OwnerSID> は,GetSecurityDescriptorOwner() で取得可能らしい.
 使用例:http://nienie.com/~masapico/api_GetSecurityDescr …

・ごみ箱のファイルに関する情報は,隠しファイル <drive>:\RECYCLER\<OwnerSID>\INFO2
 にある.その内容を調べてみた.

 (1) ヘッダ (20バイト):内容不明.内容固定?
   INFO2 Size:20(0x00000014)
   00000000 05 00 00 00 00 00 00 00-00 00 00 00 20 03 00 00
   00000010 00 00 00 00

 (2) ごみ箱のファイルのうち,<drive>: で削除されたものの内容 (800バイト固定長)
   の繰り返し.

   (a) 元のファイル名 (マルチバイト文字列,char ansiPathName[MAX_PATH (=260)])
     ・余白は '\0' で埋める.
     ・ファイルを元に戻した場合,最初の1バイトが '\0' になる.
   (b) 1から始まる連番? (DWORD)
   (c) ドライブ番号? (DWORD,A:0,B:1,…)
   (d) 12バイト (未確認,削除時刻と属性フラグか?)
   (e) 元のファイル名 (UTF-16 文字列,wchar_t unicodePathName[MAX_PATH (=260)])
     ・余白は L'\0' で埋める.
     ・元に戻しても変更されない.

・ごみ箱内のファイルの実体は,
 <drive>:\RECYCLER\<OwnerSID>\D<drive><number>.<元の拡張子>.
 ただし2番目の <drive> は小文字,<number> は1から始まる連番
 (たぶん INFO2 内の連番に対応) で,ファイルを元に戻すと欠番になる.


●参考

ごみ箱がファイルを格納する方法
(Windows 95/98SE/NT Server 4.0 Standard Ed./NT Workstation 4.0 Developer Ed.)
http://support.microsoft.com/?scid=kb%3Bja%3B136 …
(原文)
http://support.microsoft.com/default.aspx?scid=k …
    • good
    • 0
この回答へのお礼

アドバイスありがとうございました
ご親切な回答ありがとうございます。しかし私には少し荷が重そうです。
いいものが出てくるまで、しばらく頭の中に温存しておきます。

お礼日時:2007/07/05 06:50

外していると思いますが、、、


XPhomeの場合だと
フォルダオプションの「保護されたオペレーティング システム ファイルを表示しない」のチェックを外してから
見てみると ゴミ箱は C:\RECYCLER\S-1-5-21-3761373227-979953713-3912014981-1005 と言うフォルダであることが判ります
(数字部分は状況で違うはず)
このフォルダ名\S-1-中略-1005で検索すると
C:\Documents and Settings\ユーザー名\Application Data\Microsoft\Credentials

C:\Documents and Settings\ユーザー名\Application Data\Microsoft\Protect
の中に同じ名前のフォルダが見つかりますが
前者は空っぽ
後者はバイナリーファイルがいくつか入っています

これらが関係あるのか無いのかすら私には判りません。アシカラズ
    • good
    • 0
この回答へのお礼

アドバイスありがとうございました
私には少し荷が重そうです。いいものが出てくるまで、頭の中に温存しておきます。

お礼日時:2007/07/05 06:49

はっきり言って、一筋縄ではいかないようです。

興味あったので、ちょっと調べてみるか、すぐ出来るだろう、と思ったらドはまりました。

実際、ソースを組んでやってみたところ、シェルAPIの SHGetSpecialFolderPath()、または、SHGetSpecialFolderLocation() の引数に CSIDL_BITBUCKET を指定すると、レジストリの\HKEY_CLASSES_ROOT\CLSID を示す文字列を返す(ただし、配列の先頭が0になっている)、ところまではつかんだのですが、そこからどうする、という情報が調べても出てきません。レジストリを見てみると、それらしいことが書いてありますが、どうすれば良いやら。役に立たない情報ですいません。だれかフォローを。

参考URL:http://hpcgi1.nifty.com/MADIA/Vcbbs/wwwlng.cgi?p …
    • good
    • 0
この回答へのお礼

アドバイスありがとうございました

お礼日時:2007/07/05 06:46

ファイルのアトリビュート(属性)指定で見えないんじゃなくて?


もし、これだけなら、"dir" に "/a"オプションで、表示ファイルを指定できるけど…
(オプションの指定の仕方はヘルプで見てください。)
    • good
    • 0
この回答へのお礼

アドバイスありがとうございました

お礼日時:2007/07/05 06:46

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qコマンドプロンプトでごみ箱へファイルを移動させるにはどうすればよいのでしょうか?

ファイルの削除はdelでできますが、コマンドプロンプトでごみ箱へ
ファイルを移動させるにはどうすればよいのでしょうか?

使用OS:Windows XP
ご存知の方がおられましたらご回答をよろしくお願いします。

Aベストアンサー

標準コマンドではメタデータが保存されませんので、
ゴミ箱を開いても削除ファイルとして認識されません
ゴミ箱の元に戻す機能も使用できません

コマンドプロンプトからゴミ箱の機能を利用するには外部コマンドを使用します

コマンドプロンプトからごみ箱にアクセス「GB」1.0.1
http://www.comona.co.jp/gb.html

プロンプトでごみ箱を直接操作するツールWRecycle
http://www.vector.co.jp/soft/win95/util/se433560.html

Qwin7で、ごみ箱の実際の場所ってどこですか?

win7で、ごみ箱の実際の場所ってどこですか?
ごみ箱ってデスクトップにあるけど、実際どこにあるんですか?
どこかの隠しフォルダのなかですか?XPの時と違うような気がするんですが・・・

Aベストアンサー

コントロールパネルの「フォルダオプション」で、「表示」のタブの詳細設定で、
「保護されたオペレーティングシステムファイルを表示しない」のチェックを
外すと、Cドライブの直下に「$Recycle.BIN」というフォルダの中に
ごみ箱がある。

QWindowsにおける「ごみ箱フォルダ」の位置は?(ごみ箱 をIEのホームに設定したい)

WindowsXP HOME SP2 です。
Cドライブの「ごみ箱」フォルダの正確なフルパスの位置を知りたいです。
InternetExplorer(6 SP2) のホームに設定したいのです。
フルパスさえ分かればいろんなフォルダをホームに設定できるのですが、ごみ箱のフルパスの位置が分からないので、どうも分かりません。

Aベストアンサー

教えてgooのこの質問は参考になりませんか?

参考URL:http://oshiete1.goo.ne.jp/qa3123541.html

Q$RECYCLE.BIN内の古いアカウントのごみ箱フォルダ、削除するには?

Windows 7を使っているのですが、これまでに何度かOSの再インストールをしておりました。
ふと、各ドライブにある$RECYCLE.BINの中を覗いてみましたところ、
「S-1-・・・」などいった名前の複数のフォルダがあり、それらはアクセスできない状態でした。

調べてみると、これらの数字はユーザのSIDであり、
どうやらOS再インストール前のアカウントのごみ箱が残ってしまっているようでした。
これらは、どうやって削除するのが適切でしょうか?

ubuntuのLive CDなどから削除してしまうのが手っ取り早いのかな、とも思ったりしたのですが、
果たして適切な方法でしょうか・・・

Aベストアンサー

セーフモードでの削除
Administrator権限での削除
右クリック「管理者として実行」での削除
コマンドプロンプトのdelコマンドによる削除
コマンドプロンプトを右クリック「管理者として実行」で、delコマンドによる削除

QDirコマンドでフォルダ内ファイルの合計サイズをだすには?(コマンドプロンプトにて)

いろいろ調べましたが不明な点があり、質問します。

WindowsのDOSプロンプトでdirコマンドを打つとフォルダ・ファイルの一覧が表示されますが、その中にファイルサイズが表示されています。
このサイズを合計できるコマンドはありませんか?
DIRコマンドのオプションを調べましたがそれらしいものが見当たりません。
具体的には
C:\xxx\配下に50個程度のファイルがあります。
その50個の合計サイズを知りたいです。
xxxフォルダの親フォルダにはアクセス不可です。

ずーっと悩んでいます。よろしくお願いします。

なお、OSはWindowsNTか2000で使用予定です。

Aベストアンサー

カレントドライブ、カレントフォルダを
C:\xxx\
にした状態で、

dir /s /a-d

/sパラメータででサブディレクトリすべてを検索
/a-dパラメータでディレクトリ以外のファイル(つまり属性に関係なくすべてのファイル

これを実行すると最後にファイルの個数とファイルサイズの合計を表示します。

もし、隠し属性のファイルは合計しないのであれば、

dir /s

だけで良いと思われます。

QWindows 7のごみ箱をbatファイルを使って空にしたのですが、ど

Windows 7のごみ箱をbatファイルを使って空にしたのですが、どのように書けば良いでしょうか?
また、代わりに利用出来るようなソフトがあれば、そちらでもかまいません。
とにかくスタートアップに入れておけば起動時にごみ箱内をからっぽにする方法を教えてください。
出来れば何も表示されないようなコマンドラインタイプが望ましいです。
よろしくお願いします。

Aベストアンサー

http://www.vector.co.jp/soft/win95/util/se313491.html

なお、ごみ箱の運用をしたくないのならば、プロパティで「ごみ箱にファイルを移動しない」設定をしておけばいいでしょう。

Qゴミ箱を開くとエクスプローラーが停止

windows7pro 64bitです。
ゴミ箱を開くと必ず「エクスプローラーは動作を停止しました」と出て、
プログラムを終了するしか無くなります。
ゴミ箱は各ドライブに様々な容量で確保されています。
できればwindows再インストール以外の方法で解決策をお願いします。

Aベストアンサー

ごみ箱の中身のファイルにexplorer.exeを停止させる原因があるのでしょう。
まずは管理者権限でcmdを起動し、
rd /s c:\$Recycle.Bin
を実行してごみ箱を本体ごと削除します。
ドライブ全部に行ってください。

rdコマンドはディレクトリの削除コマンドです。
/sというオプションはディレクトリの中にあるファイルとサブディレクトリもこみで全てを削除しろというオプションです。
つまり、このコマンドではごみ箱ディレクトリ自体を削除してしまうのですが、ごみ箱を再度使おうとしたとき(つまり何かを削除したとき)にごみ箱は自動的に再作成されます。

これでダメだと…システムファイルになにか不具合があるような気がしますが、システムファイルチェッカくらいしか思いつきません。
sfc /scannow
というコマンドは強制的なシステムファイルの上書きを伴うので、
http://support.microsoft.com/kb/929833/ja
をよくお読みの上で自己責任で試してください。

Qbatである文字列内に特定の文字列が含まれているか確認したい

batファイルの中である変数「abc」の中に「test」という文字が含まれていたら○○を行なうという分岐を作成したいのですが、どのように行なえばよいのでしょうか?

そのまま、ずばりのお答えお待ちしております。

よろしくお願い致します。

Aベストアンサー

大文字小文字を区別しなくていいなら、

if not "%abc:test=%" == "%abc%" echo 含まれていた

区別するなら、

echo %abc% | find "test" >NUL
if not ERRORLEVEL 1 echo 含まれていた

QBatch: フォルダ内の特定のファイル以外を全て削除

こんにちは。

件名通りなのですが、フォルダ内のファイルや
サブフォルダを特別な数個のファイルを残して全て削除したいのです。

残すファイルの拡張子は *.mdb です。
例を挙げると以下のような状態で、mdbファイル以外
全てのファイル、Bフォルダも全部消したいのです。

A--- 1.mdb   2.mdb aaa.txt  bbb.doc  ccc.html
|----B(フォルダ) ddd.pdf  eee.xls

拡張子を指定すれば、と思ったのですが、どんな拡張子の
ファイルが放り込まれているのかわかりません。
またフォルダもどんな名前のフォルダが作成されているか
予測できません。

全部消す & *.mdb を除く のような構文があればいいのですが
可能かどうか、可能であれば、教えていただけないでしょうか?
よろしくお願いします。

Aベストアンサー

バッチファイルを作って実行します。

cd \A
for /r %%F in (*) do if /i "%%~xF" neq ".mdb" del "%%F"
for /r /d %%D in (*) do rd "%%D"

はじめのfor文でファイルを全部リストアップして拡張子が .mdb 以外のものを削除します。
次のfor文でディレクトリを全部リストアップして rd で削除します。.mdb ファイルが残っており空ディレクトリでなければ削除されません。エラーメッセージがでますけど気にしなければいいです。メッセージがいやなら、
for /r /d %%D in (*) do rd "%%D" 2>NUL
にすればいいです。

詳しくは、for /? や if /? 等を見てください。

Qごみ箱のファイルを開きたい

こんにちは、
Windows XP SP2で、ごみ箱に溜まったファイルを後日内容を確認してから、ごみ箱を空にしたい場合、「元に戻す」の操作をしてからでないと開けません。

これを元に戻さずにごみ箱の中の状態のまま、ファイルを開く方法またはソフト等ありませんか?
よろしくお願いします。

Aベストアンサー

ありません。↓こんな物を使えば別ですが。
http://rd.vector.co.jp/magazine/softnews/070215/n0702153.html

なぜWindows標準のゴミ箱から開けないかを考えれば分かりますよね?
もし開けるようにした場合、ウッカリさんはどうしても「ごみ箱内で」上書きをします。
→ そしてごみ箱を空にします。
→ ファイルがありません。
→ Okwaveへ「削除しちゃったんですけど」と質問をしにきます。
→ サルベージ屋さんを紹介されてン万円の価格設定に愕然とします。
という事になるからです。


人気Q&Aランキング