フォルダがなければ作るスクリプト
2022年03月29日
xcopyコマンドを使ったログ回収について書いたけど、
xcopyってコピー先のフォルダがないとエラーを吐くのがいまいち。
そういえば、前にフォルダがなければ作るマクロを作ったよな。。。
てなわけで、VBAのソースをVBScriptに移植することにした。
元ソースは、マイドキュメントにフォルダがなければ作るマクロ
前に作ったときは、ユーザーフォルダを取得するのにガチャガチャやってたけど、
フォルダがなければ作る処理だけなら20行いかないのね。
VBAとの違いは、変数の型を指定できないこと。
for ~ next の後にループ変数を入力できないこと。
sub ~ end subの記載のない部分が実行されること。
思った以上に簡単に移植できた。
xcopyのコマンドを作る際に、コピー先フォルダをこれで作っておけば便利かも。
以下、ソースを「MakeDirEX.vbs」などの名前で保存。
コマンドプロンプトなら「mkdir -p 」でいいんじゃね?って話はなしで!!
xcopyってコピー先のフォルダがないとエラーを吐くのがいまいち。
そういえば、前にフォルダがなければ作るマクロを作ったよな。。。
てなわけで、VBAのソースをVBScriptに移植することにした。
元ソースは、マイドキュメントにフォルダがなければ作るマクロ
前に作ったときは、ユーザーフォルダを取得するのにガチャガチャやってたけど、
フォルダがなければ作る処理だけなら20行いかないのね。
VBAとの違いは、変数の型を指定できないこと。
for ~ next の後にループ変数を入力できないこと。
sub ~ end subの記載のない部分が実行されること。
思った以上に簡単に移植できた。
xcopyのコマンドを作る際に、コピー先フォルダをこれで作っておけば便利かも。
以下、ソースを「MakeDirEX.vbs」などの名前で保存。
コマンドプロンプトなら「mkdir -p 」でいいんじゃね?って話はなしで!!
PR
【エクセル関数】vlookupやmatch関数で、1つ目じゃない値を引っ張る方法
2022年03月29日
vlookup関数やmatch関数は、検索文字にHITした行を探してくれて便利。
ただ、検索文字が複数行にあって、2つ目以降に登場すると簡単には取ってこれない。
今回は、特定のキーワードのある行以降の検索文字を拾ってくるものを作ってみた。
ただ、検索文字が複数行にあって、2つ目以降に登場すると簡単には取ってこれない。
今回は、特定のキーワードのある行以降の検索文字を拾ってくるものを作ってみた。
Zipファイルと空フォルダを消すクリーナバッチ
2022年03月04日
勤務時間が変わってパソコンを全く触れてなかった。久々の更新。
メールのやり取りをすると、添付ファイルは暗号化する関係で、
ダウンロードフォルダにZipファイルが溜まっていく。
また、解凍したファイルはNASに移したりすると、
空のフォルダが残ったりする。
手作業でやるのめんどいので、バッチファイルにしてみたというお話。
まずは、コマンドの確認。
●Zipファイル削除
フォルダ内のZipファイルを消すには、「del *.zip」でいける。簡単。
●空フォルダ削除
コマンド作法わからんので、グーグル先生。
以下を試したらバッチファイルでもうまくいった。
for /f %%A in ('dir /ad /b') do rd %%A
(https://teratail.com/questions/53463より)
以下は、コマンドプロンプトではうまくいくけど、バッチファイルにしたらうまくいかず。
for /f "delims=" %d in ('dir "C:\Program Files (x86)\Microsoft Office" /ad /b /s') do rd "%d"
(https://rms-099.hatenablog.jp/entry/20130121/1359223420より)
コマンドがわかったので、メモ帳にコマンドを書いて、
拡張子を.batにすればできあがり。
これをダウンロードフォルダに置いて、実行すればOK。
空フォルダか確認する手間がなくなるので結構気に入ってます。
以下、ソース
メールのやり取りをすると、添付ファイルは暗号化する関係で、
ダウンロードフォルダにZipファイルが溜まっていく。
また、解凍したファイルはNASに移したりすると、
空のフォルダが残ったりする。
手作業でやるのめんどいので、バッチファイルにしてみたというお話。
まずは、コマンドの確認。
●Zipファイル削除
フォルダ内のZipファイルを消すには、「del *.zip」でいける。簡単。
●空フォルダ削除
コマンド作法わからんので、グーグル先生。
以下を試したらバッチファイルでもうまくいった。
for /f %%A in ('dir /ad /b') do rd %%A
(https://teratail.com/questions/53463より)
以下は、コマンドプロンプトではうまくいくけど、バッチファイルにしたらうまくいかず。
for /f "delims=" %d in ('dir "C:\Program Files (x86)\Microsoft Office" /ad /b /s') do rd "%d"
(https://rms-099.hatenablog.jp/entry/20130121/1359223420より)
コマンドがわかったので、メモ帳にコマンドを書いて、
拡張子を.batにすればできあがり。
これをダウンロードフォルダに置いて、実行すればOK。
空フォルダか確認する手間がなくなるので結構気に入ってます。
以下、ソース
xcopyコマンドを使ったログ回収
2021年12月15日
久々の更新。
先月からコナミスポーツに通い詰めていて滞ってしまった。
今回は、コマンドプロンプトを使ったコピーコマンドの話。
仕事で定期的にログを回収する作業をやっているのだが、
これがまためんどい。
新しい日付のファイルを回収するんだけど、
フォルダに分かれているし、フォルダの中もでかくて簡単には手を出せない。
やりたいことは、フォルダの中の.logファイルのうち、
m月d日以降のファイルをコピーする。
robocopyでいけるかと思ったら、このコマンド日付指定できないのね。
代わりにxcopy使ったらうまくいった。
先月からコナミスポーツに通い詰めていて滞ってしまった。
今回は、コマンドプロンプトを使ったコピーコマンドの話。
仕事で定期的にログを回収する作業をやっているのだが、
これがまためんどい。
新しい日付のファイルを回収するんだけど、
フォルダに分かれているし、フォルダの中もでかくて簡単には手を出せない。
やりたいことは、フォルダの中の.logファイルのうち、
m月d日以降のファイルをコピーする。
robocopyでいけるかと思ったら、このコマンド日付指定できないのね。
代わりにxcopy使ったらうまくいった。
VBScriptのInputBoxでキャンセル判定する方法について
2021年11月07日
前に投稿したクリップボードの内容をファイル化するVBScriptについて
https://aki.p-kin.net/Entry/25/
メールなんかを保存するのに便利でちょいちょい使っているんだけど、
別用途で提供したときに、キャンセル機能が欲しいと要望が出た。
InputBoxに何も入力しなかった場合も、キャンセルボタンを押した場合も
返り値は、空白なので制御不能。
確かにキャンセルはしたい。でも、何も入力せずに保存できた方が便利。
・・・思いついた!!
InputBoxのオプションに初期値を設定できるから
半角スペースを初期値に設定しておいて、
返り値が空白ならキャンセル、半角スペースなら「固定文字+日付」
その他の文字なら「固定文字+日付+(その他の文字)」に分類しよう!
って、デフォルトの文字を最初から設定しておいてあげればいいじゃん。。。
改修か所は以下の通り。
●InputBoxにデフォルト追加。説明が不親切だったので作文。長いので定数に格納した。
●メイン処理を明確化するために、Sub main()に処理をまとめた。
●ファイル名の共通部分を定数に格納した。
以下、ソース。
https://aki.p-kin.net/Entry/25/
メールなんかを保存するのに便利でちょいちょい使っているんだけど、
別用途で提供したときに、キャンセル機能が欲しいと要望が出た。
InputBoxに何も入力しなかった場合も、キャンセルボタンを押した場合も
返り値は、空白なので制御不能。
確かにキャンセルはしたい。でも、何も入力せずに保存できた方が便利。
・・・思いついた!!
InputBoxのオプションに初期値を設定できるから
半角スペースを初期値に設定しておいて、
返り値が空白ならキャンセル、半角スペースなら「固定文字+日付」
その他の文字なら「固定文字+日付+(その他の文字)」に分類しよう!
って、デフォルトの文字を最初から設定しておいてあげればいいじゃん。。。
改修か所は以下の通り。
●InputBoxにデフォルト追加。説明が不親切だったので作文。長いので定数に格納した。
●メイン処理を明確化するために、Sub main()に処理をまとめた。
●ファイル名の共通部分を定数に格納した。
以下、ソース。