SQLの窓 イラストAC フリー素材

2020年11月26日

Google ドライブ ファイル ストリーム にバックアップは robocopy : VBScript > コマンドプロンプト > robocopy

長年別 PC や USB ハードディスクへのバックアップを xcopy でやってきましたが、Google ドライブ ファイル ストリームを使って Google ドライブにバックアップしてみると、xcopy の新しいファイルだけコピーする機能がちゃんと動かないので robocopy に乗り換えました。

VBScript でバックアップ

strName = "myfolder"
strTarget = "C:\app\system"
strBackupFolder = "G:\マイドライブ\backup"
if MsgBox( strTarget & vbCrLf & "のバックアップを開始します。よろしいですか? (保存先:" & strBackupFolder & "\" & strName & ")", 1 ) = 2 then
	Wscript.Quit
end if
Set WshShell = Wscript.CreateObject( "WScript.Shell" )
ExecCommand = "cmd.exe /C ""robocopy """ & strTarget & """ """ & strBackupFolder & "\" & strName & """ /E /XO /NP /R:3 /W:3 /XD dir C:\app\system\log /LOG:%TEMP%\robo.log & PAUSE"""

Call WshShell.Run( ExecCommand )


※ /XD dir は コピーから除外するディレクトリを指定します


posted by at 2020-11-26 13:16 | コマンドプロンプト | このブログの読者になる | 更新情報をチェックする

2020年11月25日

レジストリ内で使用する %V が最強のようです

参考にした記事

コマンドラインに指定できるプレースホルダー 詳細はリンク先を参照してください。 %V は Microsoft が使用していたコードをそのまま使っていましたが、あらためて調べてみると、変遷があったのか、結局 %V だと他の方法もトライするみたいですね。

以下は Visual Studio Code 用の記述です

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\VSCode]
@=hex(2):43,00,6f,00,64,00,65,00,20,00,67,30,8b,95,4f,30,00,00
"Icon"=hex(2):43,00,3a,00,5c,00,61,00,70,00,70,00,5c,00,56,00,53,00,43,00,6f,\
  00,64,00,65,00,5c,00,43,00,6f,00,64,00,65,00,2e,00,65,00,78,00,65,00,00,00

[HKEY_CLASSES_ROOT\Directory\shell\VSCode\command]
@=hex(2):22,00,43,00,3a,00,5c,00,61,00,70,00,70,00,5c,00,56,00,53,00,43,00,6f,\
  00,64,00,65,00,5c,00,43,00,6f,00,64,00,65,00,2e,00,65,00,78,00,65,00,22,00,\
  20,00,22,00,25,00,56,00,22,00,00,00



※ レジストリのデータが 16 進数になってるのは、REG_EXPAND_SZ になっているせいです。

REG_SZ の場合

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\VSCode]
@="Code で開く"
"Icon"="\"C:\\app\\VSCode\\Code.exe\""

[HKEY_CLASSES_ROOT\Directory\shell\VSCode\command]
@="\"C:\\app\\VSCode\\Code.exe\" \"%V\""



ちなみに、C:\app\Code\Code.exe --extensions-dir="c:\app\code\ex" のようにコマンドラインに拡張のインストール場所を指定可能です



posted by at 2020-11-25 09:09 | Windows | このブログの読者になる | 更新情報をチェックする

2020年09月07日

コマンドプロンプト

設定スクロール表示を一時停止する全画面表示入力コマンドを履歴から選択基本的なコマンドと環境変数の組み合わせリダイレクトでテキストファイルを作成するコマンドの使い方を見る32ビット用のコマンドプロンプトを実行フォルダやファイルを作業する時の基本コマンドクリップボードへのコピーと取得ネットワーク関連の基本コマンドサービスの開始と終了コマンドプロンプトで 10秒スリープレジストリのキーと値を取得するGUIDをクリップボードにセット誰でもフルアクセスできる共有を作成シャットダウンダイアログの表示キャラクタセットを変更するバックアップに xcopy を使用する

設定

サイズは自由ですが、ここではテンプレートとして幅はレガシーなサイズを使用しています

スクロール表示を一時停止する

コマンドプロンプトウインドウをクリックして下さい
再開は任意のキーやマウスの右クリックです。なので、できるだけすぐスクロールを止めたい場合は CTRL+C を連打(2回)します
スクロール表示内容をしっかり見たい場合は、more にパイプで渡します
dir c:\windows\system32 | more
more の結果を一行づつ進めるのは Enter で、ページ毎に進めるのは space です

全画面表示

( ALT+TAB で他の実行中のウインドウを表示しています )
F11 または、ALT+Enter で全画面表示となります。
どちらで実行しても、F11 または ALT+Enter で元に戻ります

入力コマンドを履歴から選択

F7 で開いて、ESC で閉じます。上下カーソルで選択して Enter で実行されます。
コマンドライン上で上下矢印キーで実行せずに選択できます

基本的なコマンドと環境変数の組み合わせ

1) cd \u*\%username%\des*
2) cd %appdata%
3) echo %cd%
4) start %temp%
1) フォルダ文字列にワイルドカードと環境変数を使用してデスクトップへ移動します。
2) Users\ユーザ名\AppData\Roaming へ移動します
3) 現在のフォルダを表示します
4) テンポラリフォルダをエクスプローラで開きます

リダイレクトでテキストファイルを作成する

1) echo on > empty.txt
2) help > help.txt
3) dir > list.txt & dir c:\windows >> list.txt
4) type con > message.txt
5) type nul > message.txt
6) sort /r < help.txt > help2.txt
1) 空のファイルを作成
2) help で表示される内容を help.txt というファイルに書き込む
3) カレントのファイル一覧と、c:\windows のファイル一覧を list.txt に書き込む
4) キーボードから入力した内容を message.txt に書き込む( 最終行で CTRL+Z )
5) 空のファイルを作成
6) help.txt の内容を逆ソートして help2.txt に書き込む

コマンドの使い方を見る

🔻 引数無しで実行
🔻 /? を付けて実行
🔻 英語系のコマンドは 引数に --help を付けて実行

32ビット用のコマンドプロンプトを実行

32ビット用の Windows アプリケーションは \Windows\SysWOW64 フォルダ内にあります

フォルダやファイルを作業する時の基本コマンド

1) dir /A:-D /B
2) dir /A:-D | sort /R
3) cd .
4) cd ..
5) cd \
6) cls
7) start .
dir コマンドは、指定したフォルダの中にどのようなファイルまたはフォルダを表示します。/A オプションは、どのような種別のリソースを表示するかを指定します。/A:D だとディレクトリ(フォルダ)のみで、/A:-D だとディレクトリを表示しないということになります。
cd コマンドは指定したディレクトリへの移動になりますが、. と .. は、相対パスです。\ は同一ドライブ内のルートとなります。その他、ディレクトリを絶対パスで指定をする事ができます。パスの指定は dir でも同じ指定で可能です。
start . で現在のフォルダでエクスプローラを開きます

クリップボードへのコピーと取得

1) echo あいうえお | clip
2) powershell get-clipboard
1) コマンドプロンプトの標準出力をパイプで clip に渡す
2) クリップボードの内容を取得して標準出力に出力して表示する

ネットワーク関連の基本コマンド

1) ping -4 PC名
2) ipconfig /all
3) net view \\PC名

サービスの開始と終了

サービスの処理は通常管理者権限のコマンドプロナプトから実行する必要があります。
管理者権限のコマンドプロンプトは、通常のコマンドブロンプトのタスクバーにあるアイコンを SHIFT+CTRL キーを押しながらクリックします
1) net start サービス名
2) sc start サービス名
3) net stop サービス名
4) sc stop サービス名
net コマンド は、サービスの処理が終了するまで、コマンド処理が待機します。sc コマンドは サービスの処理の結果を待ちません

コマンドプロンプトで 10秒スリープ

1) timeout 10
2) timeout /NOBREAK 10
3) powershell sleep -m 10000
※ /NOBREAK は、キーが押されても無視し、指定時間待ちます( CTRL+C では終了します )

レジストリのキーと値を取得する

reg query "HKLM\SOFTWARE\WOW6432Node\ODBC\ODBCINST.INI\ODBC Drivers" /s
※ /s は、再帰的にサブキーと値をすべて照会します

GUIDをクリップボードにセット

echo Set TypeLib=CreateObject("Scriptlet.TypeLib"):Wscript.echo TypeLib.Guid>%temp%\_.vbs&cscript.exe /NOLOGO %temp%\_.vbs | clip

誰でもフルアクセスできる共有を作成

net share temp=%temp% /grant:everyone,full /cache:documents /remark:"一時共有"
削除は以下のようにして行います
net share temp /delete
作成した共有を使用してネットワークドライブを割り当てます
net use t: \\%computername%\temp
※ 以下は割り当ての削除です
net use t: /delete

シャットダウンダイアログの表示

echo Set sh=CreateObject("shell.application"):sh.ShutdownWindows>%temp%\_.vbs&wscript.exe %temp%\_.vbs

キャラクタセットを変更する

1) mode con cp select=65001
2) mode con cp select=932
1) UTF-8
2) SHIFT_JIS

バックアップに xcopy を使用する

xcopy.exe "コピー元ディレクトリ" "コピー先ディレクトリ\" /D /E /C /S /Y
/D:月-日-年
指定された日付以降に変更されたファイルをコピーします。日付が指定されなかったときは、送り側の日付が受け側の日付より新しいファイルだけをコピーします。
/E ディレクトリまたはサブディレクトリが空であってもコピーします。
/C エラーが発生してもコピーを続けます。
/S 空の場合を除いて、ディレクトリとサブディレクトリをコピーします。
/Y 受け側の既存のファイルを上書きする前に確認のメッセージを表示しません
posted by at 2020-09-07 16:25 | コマンドプロンプト | このブログの読者になる | 更新情報をチェックする

2020年08月12日

リィンカーネーションの花弁 (1) 〜 (5)



  

 

最初、漫画王国で3巻まで無料だったので、開いてみたら結構面白かった。その後、ebookjapan でさらに5巻まで無料だったので続け観る。

ちょっと主人公らしいキャラの置いてけぼり感が半端無いが、化け物キャラがたくさん居るので仕方ないかなぁ。

依り代が人間の、過去の才能な強引な召喚は『終末のワルキューレ』と比べてまだ大人しいけれど、やってる事はほぼ同じ感はある。だからこそ、主人公らしいキャラの置いてけぼりなんだけど。

しかし、ちょっとキャラが可愛すぎるのは今時だから仕方ないけれど、不死の立ち回りがイマイチなのはちょっと残念



posted by at 2020-08-12 16:37 | 漫画 | このブログの読者になる | 更新情報をチェックする

2020年08月02日

タイムマシンわ号 / ほぼ自由に利用できる制限の緩いフリーフォントたち

⇩⇩⇩⇩ タイムマシンわ号 のダウンロード ⇩⇩⇩⇩
MODI工場(モーディーコウジョウ)



無償で使用可能です
いわゆるパブリックドメインです
商用・非商用いずれでもお使い頂けます
このフォントは再配布が可能です
posted by at 2020-08-02 21:33 | フリーフォントで簡単ロゴ作成 | このブログの読者になる | 更新情報をチェックする

Windows 標準の CDO.Message で(GmailまたはYahoo!メールを使って)簡単にバッチ処理からメールを送る



▼ バッチファイル
▼ スクリプト
SSL/465 で暗号化通信をします。
Gmail は、smtp.gmail.com
Yahoo メールは smtp.mail.yahoo.co.jp  ( アカウントは @ の前の部分 )
※ Gmail の場合、安全性の低いアプリの許可を『有効』にする必要があります
ファイルを添付する場合は、
Call Cdo.AddAttachment( "ファイルのフルパス" )
と追加します

※ ファイルのパスは、URL でも可能です。
HTML メールも送りたい場合は、
Cdo.HTMLBody = "HTMLの記述"
です
CC と BCC は、カンマで区切られた複数のアドレスを設定します
Cdo.CC  = """User 1"" , ""User 2"" "
関連する記事 C# : TKMP.DLLを使った、メール送信テンプレート Windows10 で確認しました。この記事の後半にあるダウンロードとソースコードは昔のものですが、動作するのでそのままおいて置きますが、今回新たにテストしたのはメールを送る機能に特化したスクリプトです。 ただ、Windows として過去の経緯からして必ず動くと保証できないので、XAMPP + Fake sendmail という環境で PHP の mb_send_mail を使用する方法も視野にいれておくといいと思います。 バッチファイル
@echo off

cscript //Nologo mail.vbs "ここは 題名" "ここは 本文\nです。\n簡単なメッセージを送ります"
VBScript : mail.vbs
' ****************************************************
' 【 対象 : Windows XP 以降 】
'
' HTML メールは Cdo.Htmlbody を使用します
' "<PRE>" & strBody & "</PRE>" をセットすると
' 良いでしょう )
'
' 添付ファイルは 
' Cdo.AddAttachment( "添付ファイルへのパス" ) を実行します
' ****************************************************

strFrom = "username@gmail.com"
strTo = "宛先"

' サーバ
strServer = "smtp.gmail.com"
nPort = 465
strUser = "username@gmail.com"
strPass = "パスワード"

Set Cdo = WScript.CreateObject("CDO.Message")

' 差出人
Cdo.From = "わたしです<" & strFrom & ">"
' 宛先
Cdo.To = strTo
' 件名
Cdo.Subject = WScript.Arguments(0)
' 本文
Cdo.Textbody = Replace( WScript.Arguments(1), "\n", vbCrLf )

' ポート利用( 2 )
Cdo.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
Cdo.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = strServer
' メールサーバの仕様に合わせる
Cdo.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = nPort
' SSL 使用
Cdo.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = true
' ユーザ/パスワードでログイン
Cdo.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
Cdo.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = strUser
Cdo.Configuration.Fields.Item  ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = strPass

Cdo.Configuration.Fields.Update

on error resume next
Cdo.Send
if Err.Number <> 0 then
	strMessage = Err.Description
else
	strMessage = "送信が完了しました"
end if
on error goto 0

Wscript.Echo strMessage

ここから古い記事の部分

Windows XP 以降で実行可能です。
( Ping 部分 )
※ Mail 送信部分は Windows 2000 以降です。
' ****************************************************
' 【 対象 : Windows XP 以降 】
' Ping を実行して応答が返って来たら、
' 指定アドレスにメールを送ります
'
' HTML メールは Cdo.Htmlbody を使用します
'
' 添付ファイルは 
' Cdo.AddAttachment( "添付ファイルへのパス" ) を実行します
' ****************************************************
strTarget = "192.168.1.1"

strFrom = "xxxx@xxxxxxxxxx"
strTo = "yyyy@yyyyyyyyy"

strServer = "zzzzzzzzzzzzzz"
nPort = 587
strUser = "aaaa"
strPass = "????"

' ****************************************************
' WMI による PING 処理
' 最大4回リトライ(正常なら1回)
' ****************************************************
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
bReply = false
For I = 1 to 4
	Set colItems = objWMIService.ExecQuery _
		("Select * from Win32_PingStatus " & _
			"Where Address = '" & strTarget & "'")
	For Each objItem in colItems
		if objItem.StatusCode = 0 then 
			bReply = true
			I = 4
			Exit For
		end if
	Next
Next

if bReply then
	strSubject	= strTarget & " は稼動中です"
	strBody = "よろしくお願いします"
else
	strSubject	= strTarget & " は問題があります"
	strBody = "調査をお願いします"
end if

Set Cdo = WScript.CreateObject("CDO.Message")

Cdo.From = strFrom
Cdo.To = strTo
Cdo.Subject	= strSubject
Cdo.Textbody = strBody

Cdo.Configuration.Fields.Item _
 ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
Cdo.Configuration.Fields.Item _
 ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = strServer
Cdo.Configuration.Fields.Item _
 ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = nPort

Cdo.Configuration.Fields.Item _
 ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
Cdo.Configuration.Fields.Item _
 ("http://schemas.microsoft.com/cdo/configuration/sendusername") = strUser
Cdo.Configuration.Fields.Item _ 
 ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = strPass

Cdo.Configuration.Fields.Update

on error resume next
Cdo.Send
if Err.Number <> 0 then
	strMessage = Err.Description
else
	strMessage = "送信が完了しました"
end if
on error goto 0

Wscript.Echo strMessage
関連する Microsoft ドキュメント

CdoSendUsing Enum

関連する記事

IE拡張メニューで取得したテキストをメールで送る(CDO.Message版)

更新履歴
初回投稿 : 不明
2013-01-06 : 部分変更
2013-07-26 : Gmail をベースにして、SSL/465 で暗号化処理
2013-07-31 : Yahoo でテストして、添付ファイル、HTMLメール、CC、BCC の使い方を追加




posted by at 2020-08-02 09:58 | VBScript | このブログの読者になる | 更新情報をチェックする