SSブログ
プログラミング学習 ブログトップ
前の10件 | 次の10件

調べ物:WSHでゴミ箱にファイルを移動する [プログラミング学習]

できるのだそうな。実際に試したところ、確かに動作した。
少し前に調べた範囲だと、"できない"という意見しか見つけられなかった。Recycledフォルダに移動してもゴミ箱には入らない、と。ユーザ操作でゴミ箱に移動する場合、OSでは実際にファイルのリネームが行われているので、通常の移動とは異なる、と。

ただ、RecycledフォルダはOSの特殊フォルダなので、特殊フォルダとして明示すればいいらしい。

「ディレクトリ内のファイルの処理」
http://winofsql.jp/VA003334/vbsguide051212104520.htm


タグ:VBScript WSH

調べ物:WSHでファイル圧縮 [プログラミング学習]

結局のところ、zip.vbsでの圧縮は使用するPCではできないので、CopyHereで実装することになった。
※使用予定のPCでエクスプローラ以外の圧縮ソフトが入っているため、zip.vbsだと圧縮動作ではなく、エクスプローラでzipファイルを開いてしまう。

「WSH zip copyhere - Google 検索」
http://www.google.co.jp/search?hl=ja&source=hp&q=WSH+zip+copyhere&aq=f&aqi=&aql=&oq=&gs_rfai=
「Shell.NameSpace - Google 検索」
http://www.google.co.jp/search?hl=ja&source=hp&q=Shell.NameSpace&aq=f&aqi=g1g-m1&aql=&oq=&gs_rfai=

「【ActiveServerPages】フォルダをZIP圧縮: 空転の一撃」
http://n-arai.cocolog-nifty.com/blog/2008/04/activeserverpag_d5bc.html

「NameSpace メソッド」
http://homepage2.nifty.com/pasocon/shell/shell/namespace.html

WSHでDumpBinでDLLヘッダから日付取得 [プログラミング学習]

できた。強引だけど。
ここまで手間をかける必要があったかは微妙なラインではあるけど、ここまで手をかけたからわかったことはある、わな。

コメントと仕様は後日更新。

続きを読む


タグ:VBScript WSH

WSHで標準出力のサイズの壁にぶち当たった。 [プログラミング学習]

WSHでの処理の中で、dumpbinでDLLのヘッダ情報を取得しようと思っている。
が。
WSHでの標準出力のサイズの壁にぶち当たった。
4096バイトまでなのだが、DLLのヘッダ情報はそのサイズを余裕で超える。
・・・必要なのは一部だけなんだけどなぁ。orz
仕方ないので、一旦ファイル出力の上でファイルを出力するしかない、ようだ。

「WSH Exec 標準出力 サイズ - Google 検索」
http://www.google.co.jp/search?hl=ja&source=hp&q=WSH+Exec+%E6%A8%99%E6%BA%96%E5%87%BA%E5%8A%9B%E3%80%80%E3%82%B5%E3%82%A4%E3%82%BA&aq=f&aqi=&aql=&oq=&gs_rfai=

「Exec()を使うときは標準出力を先に読み込むようにする - calotocenの日記」
http://d.hatena.ne.jp/calotocen/20090409/p1

「Somewhere in a Way to Nowhere: WshShellのExecで実行したコマンドが終了しない」
http://ntakano75.blogspot.com/2010/03/wshshellexec.html

調べ物:dumpbin [プログラミング学習]

調べ物:DLL内の日付情報を取得する
特定のDLLのヘッダ内の日付情報※を取得し、基準日と一致するか調べる必要がある。
※ファイルのプロパティに表示される更新日、作成日ではない。
作業を実施するPCは固定ではないが、全てOSはWindows XPだ。「Filever.exe」が使えそうだ。

Filever.exeではだめですね。Visual C++に付属しているdumpbinで可能です。
/HEADERSオプションで日付が取得できました。

「dumpbin - Google 検索」
http://www.google.co.jp/search?hl=ja&source=hp&q=dumpbin&aq=f&aqi=g10&aql=&oq=&gs_rfai=

「DUMPBIN リファレンス」
http://msdn.microsoft.com/ja-jp/library/c1h23y6c(VS.80).aspx


調べ物:WSH内で実行したコマンドの結果を取得する [プログラミング学習]

前にもちょっと調べたが、WSHで利用しているコマンドプロンプトの結果を取得する必要があるので調べた。


「DOS コマンドの実行結果を取得する方法 YU-TANG's MS-Access Discovery」
http://www.f3.dion.ne.jp/~element/msaccess/AcTipsGetDosResult.html

「Windows Scripting Host 5.6 WshScriptExec」
http://homepage3.nifty.com/aya_js/wsh/wsh301.htm

「コマンドプロンプトの出力をVBScript内の変数に代入する - 質問・相談ならMSN相談箱」
http://questionbox.jp.msn.com/qa5015259.html



タグ:WSH VBScript

調べ物:compコマンド [プログラミング学習]

WSHでファイル比較をやるのにfcでいけるかと思ったが、比較対象がバイナリでの形式なので、こちらのほうが適切だね。

「ファイルをバイナリ比較して相違点を表示 comp DENKASEIHIN.COM」
http://shop.denkaseihin.com/?eid=606

「コマンドプロンプトを使ってみよう! -ファイル操作-」
http://ykr414.com/dos/dos02.html#02

調べ物:WSHでRunメソッドとExecメソッドを使い分ける [プログラミング学習]

先日来対応しているスクリプトでのファイル操作の自動化だが、先日不具合が発生した。
コマンドプロンプトでmoveコマンドを実行したが、ファイルが移動しない。厳密には、moveコマンドで複数種類のファイルを移動しようとしているのだが、一部のファイルが移動しない。
移動しないファイルに法則性はない。何回か繰り返せば全て移動する。

どうも、moveコマンドを複数実行しようとしたものの、moveコマンド自体が非同期実行に対応していないようで、そのため、前の処理が終わらないうちに次の処理を実行しようとして失敗しているようだ。
なので、前の実行が終わってから実行すれば、問題は解決されるだろう。

コマンドプロンプトの実行にはWshShellのRunメソッドを使っていた。このメソッドの引数で、実行終了を待つか指定するものがある。そこを指定すればよさそうだ。

Runメソッドと近いメソッドにExecがある。ExecとRunの違いを今一つわかっていなかったが、標準入出力の使用でわければよさそうか?

続きを読む


タグ:WSH VBScript

調べ物:DLL内の日付情報を取得する [プログラミング学習]

特定のDLLのヘッダ内の日付情報※を取得し、基準日と一致するか調べる必要がある。
※ファイルのプロパティに表示される更新日、作成日ではない。
作業を実施するPCは固定ではないが、全てOSはWindows XPだ。「Filever.exe」が使えそうだ。
ただし、作業を実施するPC環境の変更はできないので、WSHスクリプトと一緒に配布する使い方ができるか、だろうか。

「@IT:Windows TIPS -- Tips:バイナリ・ファイルのバージョンを調べる」
http://www.atmarkit.co.jp/fwin2k/win2ktips/316filever/filever.html

こればかりはやってみないとわからないか。

メモ:特定のファイルのファイルサイズを取得する [プログラミング学習]

Excelで指定されたフォルダ内の特定ファイルのサイズを一覧化することになった。

手順としては以下の通りで考えている。
1.ユーザが フォルダを指定する
2. フォルダ内のファイルを一覧化する
3. フォルダ名に含まれる特定の単語により、フォルダが対象として適切なフォルダかチェックする
4. Excel内のシートにフォルダ内のファイルとサイズを一覧化する
5. 4で一覧化したファイルをソートする
6. 一覧化したファイルからサイズを取得する対象ファイルを検索し、一致したファイルのサイズを出力先セルにコピーする

この手順にしようとおもった理由(=要件)は以下の通り。
・特定ファイルのサイズをチェックしたい
・ファイルサイズの取得結果はExcelが使えるレベルの人なら同じになる
・現在30分かかるファイルファイルサイズ取得と出力を5分で終わる
・ファイル一覧取得の自動取得に対して、ユーザが処理ミスの懸念を持っているため処理記録を残す
 ただし、永続的に残しておく必要はない

大体、こんなもんかな。
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感
前の10件 | 次の10件 プログラミング学習 ブログトップ