Option Explicit
Dim FSYS 'FileSystem
Dim SHAP 'ShellApplication
Dim CurFolder '移動元のディレクトリ
Dim TargetFolderName '移動先のディレクトリ名
Dim TargetFolder '移動先のディレクトリ
Dim file '
Dim MoveFileName '移動対象のファイル
Const FOF_CREATEPROGRESSDLG = &H0&
Set FSYS = WScript.CreateObject("Scripting.FileSystemObject")
Set CurFolder = FSYS.GetFolder(".")
Set SHAP = WScript.CreateObject("Shell.Application")
’ファイル名からフォルダを作ってそこに移動(jpgのみ)
For Each file In CurFolder.Files
TargetFolderName = FolderName(file.Name)
If TargetFolderName <> vbNull Then
If FSYS.FolderExists(TargetFolderName) = False Then
FSYS.CreateFolder(TargetFolderName)
End If
Set TargetFolder = SHAP.Namespace(CurFolder.Path & "\" & TargetFolderName)
'ワイルドカードを使ってまとめてMove
MoveFileName = CurFolder.Path & "\" & TargetFolderName & "*.jpg"
TargetFolder.MoveHere MoveFileName, FOF_CREATEPROGRESSDLG
End If
Next
Set TargetFolder = Nothing
Set CurFolder = Nothing
Set SHAP = Nothing
Set FSYS = Nothing
Function FolderName(FileName)
Dim objRegExp ' 正規表現オブジェクト
Dim Matches ' 検索結果Collection
Set ObjRegExp = New RegExp
ObjRegExp.Pattern = "_.*\d{3}\.jpg" 'jpg のみ対象 xxxx_999.jpg のパターン
ObjRegExp.IgnoreCase = True
ObjRegExp.Global = False
Set Matches = objRegExp.Execute(FileName)
If Matches.Count > 0 Then
FolderName = objRegExp.Replace(FileName,"")
Else
FolderName = vbNull
End If
Set ObjRegExp = Nothing
Set Matches = Nothing
End Function
11.01.2012
フォルダの中身をZIP
Option Explicit
Dim FLSYS 'FileSystem
Dim SHLAP 'ShellApplication
Dim WSSHL 'WScriptShell
Dim CurFolder
Dim SubFolder
Dim AddFolder
Const ZipFilePath = "c:\zipped\"
Dim ZipFileName
Dim ZipFile
Dim AddCount
Dim ZipCount
Dim LogFile
Dim LogFileName
Set FLSYS = WScript.CreateObject("Scripting.FileSystemObject")
Set CurFolder = FLSYS.GetFolder(".")
LogFileName = CurFolder.Path
LogFileName = LogFileName & "\"
LogFileName = LogFileName & Mid(Date,1,4) & Mid(Date,6,2) & Mid(Date,9,2)
LogFileName = LogFileName & ".log"
Set LogFile = FLSYS.OpenTextFile(LogFileName,8,True)
LogFile.WriteLine Date & " " & Time & " ##### STRAT CopyToZIP ######"
Set SHLAP = WScript.CreateObject("Shell.Application")
Set WSSHL = WScript.CreateObject("WScript.Shell")
'カレントフォルダ下のサブフォルダ毎にZIPファイルを作ります
For Each SubFolder in CurFolder.SubFolders
LogFile.WriteLine Date & " " & Time & " " & FLSYS.GetFileName(SubFolder.Path)
'カレントディレクトリに同名のZIPファイルが存在していたら削除
ZipFileName = ZipFilePath & FLSYS.GetFileName(SubFolder.Path) & ".zip"
If FLSYS.FileExists(ZipFileName) Then
FLSYS.DeleteFile ZipFileName
End If
FLSYS.CreateTextFile(ZipFileName).Write "PK" & Chr(5) & Chr(6) & String(18, 0)
Set ZipFile = SHLAP.NameSpace(ZipFileName)
ZipCount = ZipFile.Items.Count
'1. フォルダごと圧縮する場合
' ZipFile.CopyHere(SubFolder.Path)
'2. フォルダの中身だけ圧縮する場合
'追加するフォルダのオブジェクトを作成
Set AddFolder = SHLAP.NameSpace(SubFolder.Path)
AddCount = AddFolder.Items.Count
LogFile.WriteLine Date & " " & Time & " Copy Start " & ZipCount & "/" & AddCount
ZipFile.CopyHere AddFolder.Items , FOF_NOCONFIRMATION + FOF_SIMPLEPROGRESS
' ZipFile.MoveHere AddFolder.Items , FOF_NOCONFIRMATION + FOF_SIMPLEPROGRESS ' Moveでもファイル残る?
'CopyHere が非同期なので終了を判定
'ファイル数が一致するまで
Do
ZipCount = ZipFile.Items.Count
If ZipCount = AddCount Then Exit Do
WScript.Sleep(3000) '3秒待つ
LogFile.WriteLine Date & " " & Time & " Copy ..... " & ZipCount & "/" & AddCount
Loop
LogFile.WriteLine Date & " " & Time & " Copy End " & ZipCount & "/" & AddCount
Set AddFolder = Nothing
Set ZipFile = Nothing
Next
LogFile.WriteLine Date & " " & Time & " ##### END CopyToZIP ######"
MsgBox "おわり"
Set CurFolder = Nothing
Set SHLAP = Nothing
Set FLSYS = Nothing
ZIPファイルのアイテム数をZipCountに取り出して3秒ごとにログに吐き出してみましたが
ほとんどの場合、0でした。
圧縮中はZipファイルがロックされているようなので、そのせいかな。
Zipファイルの作成される側のフォルダを見ていると、テンポラリファイルが作成されていて、これが時々消えます。
テンポラリファイルが消えたタイミングでアイテム数を取り出すと、
その時点でコピーしたファイルの数が取り出せるようです。
ついでにこのタイミングで一時ロックを解除しているようで、
圧縮処理の終了判定をロックの有無でやるとしくじりがちです。
時々処理が止まってしまいます。エラーメッセージを出してくれる事もあるけど
何にも言わずに待ってるだけの場合、
手でファイルをコピーしてあげると処理を続行できました。
copyhere フォルダ.items でやると隠しファイルは無視されるのかな?
それは具合がいいのでそのまま。
movehere でやっても元のファイルはそのまま残りました。
移動先が圧縮ファイルだから?未検証。
まあ、自動的に消えてしまうのも怖いのでcopyhereで。
zipファイルのサイズが大きくなると1ファイル当たりの処理時間が長くなります。ファイルが育っていくにつれて、だんだん遅くなる感じで、ちょっと考えもの。
そもそもJPEGをさらにZip圧縮してもそんなにメリット無いしにゃーという感じです。
Dim FLSYS 'FileSystem
Dim SHLAP 'ShellApplication
Dim WSSHL 'WScriptShell
Dim CurFolder
Dim SubFolder
Dim AddFolder
Const ZipFilePath = "c:\zipped\"
Dim ZipFileName
Dim ZipFile
Dim AddCount
Dim ZipCount
Dim LogFile
Dim LogFileName
Set FLSYS = WScript.CreateObject("Scripting.FileSystemObject")
Set CurFolder = FLSYS.GetFolder(".")
LogFileName = CurFolder.Path
LogFileName = LogFileName & "\"
LogFileName = LogFileName & Mid(Date,1,4) & Mid(Date,6,2) & Mid(Date,9,2)
LogFileName = LogFileName & ".log"
Set LogFile = FLSYS.OpenTextFile(LogFileName,8,True)
LogFile.WriteLine Date & " " & Time & " ##### STRAT CopyToZIP ######"
Set SHLAP = WScript.CreateObject("Shell.Application")
Set WSSHL = WScript.CreateObject("WScript.Shell")
'カレントフォルダ下のサブフォルダ毎にZIPファイルを作ります
For Each SubFolder in CurFolder.SubFolders
LogFile.WriteLine Date & " " & Time & " " & FLSYS.GetFileName(SubFolder.Path)
'カレントディレクトリに同名のZIPファイルが存在していたら削除
ZipFileName = ZipFilePath & FLSYS.GetFileName(SubFolder.Path) & ".zip"
If FLSYS.FileExists(ZipFileName) Then
FLSYS.DeleteFile ZipFileName
End If
FLSYS.CreateTextFile(ZipFileName).Write "PK" & Chr(5) & Chr(6) & String(18, 0)
Set ZipFile = SHLAP.NameSpace(ZipFileName)
ZipCount = ZipFile.Items.Count
'1. フォルダごと圧縮する場合
' ZipFile.CopyHere(SubFolder.Path)
'2. フォルダの中身だけ圧縮する場合
'追加するフォルダのオブジェクトを作成
Set AddFolder = SHLAP.NameSpace(SubFolder.Path)
AddCount = AddFolder.Items.Count
LogFile.WriteLine Date & " " & Time & " Copy Start " & ZipCount & "/" & AddCount
ZipFile.CopyHere AddFolder.Items , FOF_NOCONFIRMATION + FOF_SIMPLEPROGRESS
' ZipFile.MoveHere AddFolder.Items , FOF_NOCONFIRMATION + FOF_SIMPLEPROGRESS ' Moveでもファイル残る?
'CopyHere が非同期なので終了を判定
'ファイル数が一致するまで
Do
ZipCount = ZipFile.Items.Count
If ZipCount = AddCount Then Exit Do
WScript.Sleep(3000) '3秒待つ
LogFile.WriteLine Date & " " & Time & " Copy ..... " & ZipCount & "/" & AddCount
Loop
LogFile.WriteLine Date & " " & Time & " Copy End " & ZipCount & "/" & AddCount
Set AddFolder = Nothing
Set ZipFile = Nothing
Next
LogFile.WriteLine Date & " " & Time & " ##### END CopyToZIP ######"
MsgBox "おわり"
Set CurFolder = Nothing
Set SHLAP = Nothing
Set FLSYS = Nothing
ZIPファイルのアイテム数をZipCountに取り出して3秒ごとにログに吐き出してみましたが
ほとんどの場合、0でした。
圧縮中はZipファイルがロックされているようなので、そのせいかな。
Zipファイルの作成される側のフォルダを見ていると、テンポラリファイルが作成されていて、これが時々消えます。
テンポラリファイルが消えたタイミングでアイテム数を取り出すと、
その時点でコピーしたファイルの数が取り出せるようです。
ついでにこのタイミングで一時ロックを解除しているようで、
圧縮処理の終了判定をロックの有無でやるとしくじりがちです。
時々処理が止まってしまいます。エラーメッセージを出してくれる事もあるけど
何にも言わずに待ってるだけの場合、
手でファイルをコピーしてあげると処理を続行できました。
copyhere フォルダ.items でやると隠しファイルは無視されるのかな?
それは具合がいいのでそのまま。
movehere でやっても元のファイルはそのまま残りました。
移動先が圧縮ファイルだから?未検証。
まあ、自動的に消えてしまうのも怖いのでcopyhereで。
zipファイルのサイズが大きくなると1ファイル当たりの処理時間が長くなります。ファイルが育っていくにつれて、だんだん遅くなる感じで、ちょっと考えもの。
そもそもJPEGをさらにZip圧縮してもそんなにメリット無いしにゃーという感じです。
7.26.2012
ExcelにCSVを。SQLで、Recordsetとして
SQLが使えるなら射影も選択も楽ちんじゃないか。
Dim CON As ADODB.Connection
Dim RS As ADODB.Recordset
Dim SQLTEXT = "SELECT 商品名 FROM testdata.csv where 種類='CD' order by 金額"
Set CON = New ADODB.Connection
CON.Provider = "Microsoft.Jet.OLEDB.4.0"
CON.Properties("Extended Properties") = "Text;HDR=YES"
CON.ConnectionString = "G:\test" ’フォルダを指定
CON.Open
Set RS = CON.Execute(SQLTEXT)
RS.Filter = "商品名 = '旅の途中 [Maxi]'" 'フィルタも。
Sheet1.Range("B2").CopyFromRecordset RS 'ワークシートに流し込み
Set RS = Nothing
Set CN = Nothing
End Sub
7.25.2012
7.23.2012
7.19.2012
I Care Because You Do
今の会社でパートをはじめて半年と少し。
架電業務はやっぱりストレス高いのか、定着しない人も多い。
それでも何人かは残っていく。
職場で人間関係を築けない人は続かない。
休憩時間に寂しそうにしているけれど、こちらも自分のことで手一杯なんだもの。
昼休みに人を避けて、一人で車の中で飯食ってる人に、何をしてあげられるだろうか。
社会という自然環境の中での生存能力。
7.18.2012
哭きの竜
ひとつ晒せば自分を晒す、ふたつ晒せばすべてを晒す、みっつ晒せば地獄が見える。
見える見える、落ちるさま
Facebookは人の繋がりや絆を保証しない。
昔の友人知人との繋がりが途切れてしまうと、それを再接続するのはけっこう
怖いもんだったと思う。
その敷居を低くすることを考えのかどうか、そういう風にも機能している。
これは利用者が実名と正しい履歴を晒すことを前提にしているんだ。
wiredとrealworldとの密接な結合、融合と言い換えても良いかもしれない。
地理的距離と時間の隔たりを超えて、wiredがrealworldと呼ばれていた地域を包含する。
domainとしてのrealworld。
見える見える、落ちるさま
Facebookは人の繋がりや絆を保証しない。
昔の友人知人との繋がりが途切れてしまうと、それを再接続するのはけっこう
怖いもんだったと思う。
その敷居を低くすることを考えのかどうか、そういう風にも機能している。
これは利用者が実名と正しい履歴を晒すことを前提にしているんだ。
wiredとrealworldとの密接な結合、融合と言い換えても良いかもしれない。
地理的距離と時間の隔たりを超えて、wiredがrealworldと呼ばれていた地域を包含する。
domainとしてのrealworld。
7.17.2012
1-2-3
もう20年以上も前のこと。
その頃はパソコン(NECのPC-98xx)でやることと言えば、Lotus1-2-3。
あとゲームもだけど。
1-2-3の関数リファレンス本(たぶんナツメ社のやつ)を買ってきて、
全部の関数を一通り試してみたのが、 今の私を支える基盤の一部になっているように思えます。
そこに差分で知識を積み重ねていったのだと。
さて、Excel2007あたりで大幅に関数増えてるみたいで、これがまた便利。
もー、べんりー。って感じ。
でもIFERROR関数があるなら IFBLANK関数があってもいいのに、と思いました。
こういう、コレがありなら、コレもいけるんじゃ無い?とか
こうなって、こうなるんなら、こうしたらこうなるんじゃないか?っていう予測は
大体当たるようにデザインされてるもんだ。
その頃はパソコン(NECのPC-98xx)でやることと言えば、Lotus1-2-3。
あとゲームもだけど。
1-2-3の関数リファレンス本(たぶんナツメ社のやつ)を買ってきて、
全部の関数を一通り試してみたのが、 今の私を支える基盤の一部になっているように思えます。
そこに差分で知識を積み重ねていったのだと。
さて、Excel2007あたりで大幅に関数増えてるみたいで、これがまた便利。
もー、べんりー。って感じ。
でもIFERROR関数があるなら IFBLANK関数があってもいいのに、と思いました。
こういう、コレがありなら、コレもいけるんじゃ無い?とか
こうなって、こうなるんなら、こうしたらこうなるんじゃないか?っていう予測は
大体当たるようにデザインされてるもんだ。
12.29.2011
レコトルネ メモ
BDZ-AT770T
PS3,BDZとも有線LANで接続。
┌───┐ ┌───┐
WAN─┤router├─┤ HUB │
└───┘ └┬─┬┘
┌───┘ └───────┐
┌┴──┐ ┌┴──┐
│ PS3 │ │ BDZ ├─ANT(地上波,BS,CS)
└┬─┬┘ └┬─┬┘
│ └┐ │ │
│ ┌┴──┐ │ │
│ │torne ├───────┘ │
│ └───┘ANT(地上波) │
│ │
└┐┌─────────────┘
┌─┴┴┐
│disp │
└───┘
1.レコーダー側
設定->通信設定->ホームサーバー設定
サーバー機能:入
クライアント機器登録方法:手動
未登録機器一覧から PLAYSTATION 3 を登録
登録後、登録機器一覧を確認
2.PS3側
メディアサーバ検索でBDZが見えてるはず。
設定->本体設定で DTCP-IPを有効にする
torneを起動
設定->ネットワーク設定-> レコトルネ設定(10日間お試し)
で、BDZを登録
torneの番組表にBS,CSの番組表が増えてます。
※BS,CS番組の視聴はできません。予約操作と録画した番組の視聴のみ。
この時点ではBS番組表、CS番組表は「登録チャンネルがありません」という
とんちんかんなメッセージを表示しています。
番組表は、レコーダー側で0時と12時に更新され、
その後、レコトルネが番組情報を取りに来るのだそうです。
気長に待ちます。夕方設定して放置後、朝になったら番組表が取得されてい
ました。
12.19.2010
とある魔術の禁書目録
一瞬前、血が下がる感覚があって塀に寄りかかろうとしたか、しゃがんで休もうとした。
目が覚めたら路上で寝ていた。
何か夢を見ていて、現実と繋がらなくて混乱した。
眼鏡は壊れていて、口元がベシャベシャに汚れている。
明るいところで見てみると、鼻血だった。
顔と手に擦り傷。ふくらはぎに痛み。
飲んでる薬のせいで胃の具合がおかしいのと
あったかい部屋から急に寒いところに出たから貧血を起こしたんだろう。
家から10分ほどの場所から、20分くらいかけて戻る。
多分寝ていたのは5分か、長くて10分といったところ。
死ぬかと思った。
古本屋に「とある魔術の禁書目録」の続きを探しに行こうと思って出た日。
目が覚めたら路上で寝ていた。
何か夢を見ていて、現実と繋がらなくて混乱した。
眼鏡は壊れていて、口元がベシャベシャに汚れている。
明るいところで見てみると、鼻血だった。
顔と手に擦り傷。ふくらはぎに痛み。
飲んでる薬のせいで胃の具合がおかしいのと
あったかい部屋から急に寒いところに出たから貧血を起こしたんだろう。
家から10分ほどの場所から、20分くらいかけて戻る。
多分寝ていたのは5分か、長くて10分といったところ。
死ぬかと思った。
古本屋に「とある魔術の禁書目録」の続きを探しに行こうと思って出た日。
12.12.2010
BSDを256倍使うための本
そういえば、数日前から頭痛があった。
その時点で病院行けば良かったのかなあ。何科に行けば良かったのだろう。
2007年2月に発症した顔面神経麻痺が再発。癖になってるのかしら。
今回見てくれた先生によると
帯状疱疹の原因になるウイルスが耳のあたりから分岐してる神経と結びつきやすいという説もある。
全然関係ないという説もある、とのこと。
なんだか知らないけど、顔の神経は3ヶ月くらいでまた生えてくるんだそうです。 「BSDを256倍使うための本」は1995年頃、「Linuxを256倍使うための本」と並べて売られていた物。 帯にはBSDの方が「Linuxでいいんですか?」、Linuxの方が「まだBSDですか?」だったと思う。
その時点で病院行けば良かったのかなあ。何科に行けば良かったのだろう。
2007年2月に発症した顔面神経麻痺が再発。癖になってるのかしら。
今回見てくれた先生によると
帯状疱疹の原因になるウイルスが耳のあたりから分岐してる神経と結びつきやすいという説もある。
全然関係ないという説もある、とのこと。
なんだか知らないけど、顔の神経は3ヶ月くらいでまた生えてくるんだそうです。 「BSDを256倍使うための本」は1995年頃、「Linuxを256倍使うための本」と並べて売られていた物。 帯にはBSDの方が「Linuxでいいんですか?」、Linuxの方が「まだBSDですか?」だったと思う。
12.18.2008
12.14.2008
12.13.2008
スラン
帰省の切符を予約しました。
家の掃除をしてたらシール剥がし、値札はがしの類がやけに出てくる。
何でだ。
あと、探してるUSBメモリは出てこない。
何でだ。
CDが世に出て20年くらいでしょうか。
その間、ほとんど値上も値下もしてないですよね。だいたい3000円くらい。
レコード盤が3000円だからCDも3000円。でなんとなく見逃してたけど、
ぼってたんじゃないか、コレ。
DVDは最初からビデオテープより格段に安くて、
数が出るようになると、さらにお求め易くなりました。
CD今更半額にしたって倍売れるわけでもなし。
そんなこんなで、今やDVDはCDより安い。
そのうちCDはマニア向けの高額商品になってしまうんでしょうか。
ダークナイトは通常版だと実売3000円切ってます。
あのジョーカーは子供には見せちゃダメなレベルですよ。
バットマンは格好悪いし。
家の掃除をしてたらシール剥がし、値札はがしの類がやけに出てくる。
何でだ。
あと、探してるUSBメモリは出てこない。
何でだ。
CDが世に出て20年くらいでしょうか。
その間、ほとんど値上も値下もしてないですよね。だいたい3000円くらい。
レコード盤が3000円だからCDも3000円。でなんとなく見逃してたけど、
ぼってたんじゃないか、コレ。
DVDは最初からビデオテープより格段に安くて、
数が出るようになると、さらにお求め易くなりました。
CD今更半額にしたって倍売れるわけでもなし。
そんなこんなで、今やDVDはCDより安い。
そのうちCDはマニア向けの高額商品になってしまうんでしょうか。
ダークナイトは通常版だと実売3000円切ってます。
あのジョーカーは子供には見せちゃダメなレベルですよ。
バットマンは格好悪いし。
12.11.2008
12.06.2008
LOCK ON memo
Setup
:レート 22kHz
:チャンネル 2
:ビット 16
:録音時間 2時間
:録音モード
:PIPE設定 - lame.exe -b 56 --resample 16 - "%d%p%f%e"
- oggenc.exe - -o "%a"
- waveflt2 -cfg wfltsample.txt stdin "%a"
- gogodll.exe -b 64 stdin "%a"
- waveflt2.exe -fir_lpf 10000 -dither 0 stdin "%a"
:ファイル名xxxxxx-%Y-%M-%D
:録音後実行コマンド - C:\Program Files\Trans2_106a\X86\Trans2.exe /S /F
- sndrec32 /play "%a"
[次回の再起動予定時刻] 2008/12/9 火 0 時 58 分
[準備時間] 5 秒
[録音前コマンド] 5 分前に実行
[録音後コマンド] 10 秒後に実行
[ 1] 毎週 火 1 時 0 分
[次回の実行時刻] 2008/12/9 火 1 時 0 分
[%3] ijuin
[PIPE 608M] 2 時間 0 分 30 秒 22050Hz 16Bit stereo
[FILE] H:\radio\shinyano-%Y-%M-%D.mp3
[PIPE] gogodll.exe -b 64 stdin "%a"
[録音後コマンド] C:\Program Files\Trans2_106a\X86\Trans2.exe /S /F
[1 分間マウス入力が無ければ録音後コマンド実行]
:レート 22kHz
:チャンネル 2
:ビット 16
:録音時間 2時間
:録音モード
:PIPE設定 - lame.exe -b 56 --resample 16 - "%d%p%f%e"
- oggenc.exe - -o "%a"
- waveflt2 -cfg wfltsample.txt stdin "%a"
- gogodll.exe -b 64 stdin "%a"
- waveflt2.exe -fir_lpf 10000 -dither 0 stdin "%a"
:ファイル名xxxxxx-%Y-%M-%D
:録音後実行コマンド - C:\Program Files\Trans2_106a\X86\Trans2.exe /S /F
- sndrec32 /play "%a"
[次回の再起動予定時刻] 2008/12/9 火 0 時 58 分
[準備時間] 5 秒
[録音前コマンド] 5 分前に実行
[録音後コマンド] 10 秒後に実行
[ 1] 毎週 火 1 時 0 分
[次回の実行時刻] 2008/12/9 火 1 時 0 分
[%3] ijuin
[PIPE 608M] 2 時間 0 分 30 秒 22050Hz 16Bit stereo
[FILE] H:\radio\shinyano-%Y-%M-%D.mp3
[PIPE] gogodll.exe -b 64 stdin "%a"
[録音後コマンド] C:\Program Files\Trans2_106a\X86\Trans2.exe /S /F
[1 分間マウス入力が無ければ録音後コマンド実行]
登録:
投稿 (Atom)

