SQLの窓

2019年01月14日


エクスプローラのフォルダから管理者権限でコマンドプロンプトを開く / 右クリックから『送る』で開く

Set obj = CreateObject("Shell.Application")
Set WshShell = CreateObject( "WScript.Shell" )
obj.ShellExecute "cmd.exe", "/s /k pushd """ & WScript.Arguments(0) & """", "", "runas", 1


保存時のエクスプローラをのアドレスで sendto と入力して保存して下さい。(『送る』フォルダに保存されます )
その後、エクスプローラのフォルダを選択して右クリックで『送る』から 管理者コマンド.vbs を選択します
( 拡張子を表示しない設定では、管理者コマンド と表示されます )








posted by lightbox at 2019-01-14 15:48 | VBS + Shell | このブログの読者になる | 更新情報をチェックする

2019年01月13日


コマンド リダイレクト演算子を使用する( Using command redirection operators ) : 直前の出力にエラー出力をリダイレクト

✅ Microsoft ドキュメント
コマンド リダイレクト演算子を使用する

単純な リダイレクト は > でファイルに書き込むものです。>> を使うと、追加書き込みになります。このような記号は、リダイレクト演算子と呼ばれます。

STDIN

0

キーボード入力

STDOUT

1

標準出力

標準エラー出力

2

Error output to the Command Prompt window

0、1、2 は ハンドル番号で、既存のハンドルへのリダイレクトを指定するには、アンパサンド(&)文字の後にリダイレクトしたいハンドル番号を使用します。

なので、2>&1 は 標準エラー出力を標準出力にリダイレクトする事を意味します。

解りやすいテストは、エラーだけに着目して、以下のように実行すると、x が存在しないのでメッセージが出ます。
C:\temp>dir x
 ドライブ C のボリューム ラベルは Windows10 です
 ボリューム シリアル番号は 40B9-7D17 です

 C:\temp のディレクトリ

ファイルが見つかりません
この『ファイルが見つかりません』は、dir x > message.txt としても message.txt には書き込まれません。 しかし、以下のようにすれば全て書き込む事ができます。
dir x > message.txt 2>&1
posted by lightbox at 2019-01-13 21:05 | コマンドプロンプト | このブログの読者になる | 更新情報をチェックする

コマンドプロンプトで 10秒スリープする3つの方法

✅ timeout コマンド

timeout /T 10

pause

REM TIMEOUT [/T] タイムアウト [/NOBREAK]

REM 説明:
REM     このユーティリティでは、タイムアウトのパラメーターを指定して、一定の時間 (秒)
REM     が経過するまで、またはユーザーが任意のキーを押すまで、プログラムを待機
REM     させることができます。
REM     キー入力を無視するためのパラメーターを指定することもできます。

REM パラメーター一覧:
REM     /T        タイムアウト  待機する時間 (秒) を指定します。
REM                             有効な範囲は -1 から 99999 秒までです。

REM     /NOBREAK                キーが押されても無視し、指定時間待ちます。

✅ powershell のコマンド( コマンドプロンプトで実行します )

sleep は、Start-SleepAlias で、-m だと ミリ秒で -s だと秒です。
powershell sleep -m 10000

pause

✅ VBScript のコードを作成して実行

テンポラリフォルダに echo で VBScript のコードを書き込んで、それを cscript.exe で実行します。 ※ Sleep メソッド
echo wscript.sleep(10000) > %TEMP%\_sleep.vbs & cscript %TEMP%\_sleep.vbs

pause


sleep.vbs
wscript.sleep(10000)


ダウンロードしたファイルをエクスプローラから実行する場合は、『許可する』にチェックして『適用』して下さい。



または、『詳細情報』をクリックしてから実行します( 『許可する』と同等  )






コマンドプロンプトから実行する場合は、上記をしなくても使えるようです。




posted by lightbox at 2019-01-13 18:48 | コマンドプロンプト | このブログの読者になる | 更新情報をチェックする

2019年01月12日


コマンドプロンプト : テキストファイルの初期化と FOR でファイル列挙の方法

FOR : カレントのファイル列挙 FOR /D : カレントのディレクトリ列挙 FOR /F : テキストファイル内を列挙 FOR /R : 全てのファイル( サブディレクトリ内全て )列挙 実行内容 カレントファイル一覧 オプションなしの FOR コマンドで、カレントファイルの一覧を *.* のワイルドカードで列挙しています ファイル初期化 > による リダイレクトの左辺に type nul という nul を表示するという結果を置いて、初期化しています。 1階層 ディレクトリ一覧作成 /D オプションで、カレントのディレクトリの一覧を列挙し、dir.txt に >> で追加書き込みをしています。( 本来実行するたびに追加されますが、実行前に初期化しています ) dir.txt 内列挙 /F オプションで列挙の対象をファイルにし、DO でファイル名を指定しています 全階層 ファイル一覧 /R オプションで下位階層の全てのフォルダ内のファイル一覧を列挙して、all.txt に書き込んでいます。
@echo off
echo -----------------------------------

REM ************************************
echo カレントファイル一覧
REM ************************************

FOR %%i IN (*.*) DO (
	echo %%i
)

echo -----------------------------------

REM ************************************
echo ファイル初期化
REM ************************************

type nul > dir.txt
type nul > all.txt

echo -----------------------------------

REM ************************************
echo 1階層 ディレクトリ一覧作成
REM ************************************

FOR /D %%i IN (*.*) DO (
	echo %%i >> dir.txt
)

echo -----------------------------------

REM ************************************
echo dir.txt 内列挙
REM ************************************

FOR /F %%i IN (dir.txt) DO (
	echo %%i
)

echo -----------------------------------

REM ************************************
echo 全階層 ファイル一覧
REM ************************************
FOR /R %%i IN (*.*) DO (
	echo %%i >> all.txt
)

echo -----------------------------------


関連する記事




posted by lightbox at 2019-01-12 19:38 | コマンドプロンプト | このブログの読者になる | 更新情報をチェックする

VBScript : XCOPYで新しいファイルのみバックアップする為のスクリプトを作成するスクリプト

⭕ 1) ディレクトリ選択でバックアップするフォルダを決定 ⭕ 2) カレント(このスクリプトを実行したフォルダ)にスクリプトが作成されます ⭕ 3) 新しいスクリプトを実行 ⭕ 4) カレントにバックアップ用のフォルダが作成されます ⭕ 5) バックアップするフォルダ内をそのフォルダ内に全てコピーします ▼ 実行時に表示されるフォルダ選択 XCOPY なので、2回目以降は新しいファイルのみコピーします ▼ 作成されたスクリプトのサンプルです
strName = "BK_C_temp_lightbox"
strTarget = "C:\temp\lightbox"
strBackupFolder = "C:\tmp\vbs"
if MsgBox( strTarget & vbCrLf & "のバックアップを開始します。よろしいですか? (保存先:" & strBackupFolder & "\" & strName & ")", 1 ) = 2 then
	Wscript.Quit
end if
Set WshShell = Wscript.CreateObject( "WScript.Shell" )
ExecCommand = "cmd.exe /C ""xcopy.exe """ & strTarget & """ """ & strBackupFolder & "\" & strName & "\"" /D /E /C /S /Y & PAUSE"""
Call WshShell.Run( ExecCommand )


▼ 使用するオプション
/D : コピー元の日付がコピー先の日付より新しいファイルだけをコピーします
/E : ディレクトリまたはサブディレクトリが空であってもコピーします
/C : エラーが発生してもコピーを続けます
/S : 空の場合を除いて、ディレクトリとサブディレクトリをコピーします
/Y : 既存のファイルを上書きする前に確認のメッセージを表示しません
一番重要なのは、/D です。/S /E で、存在するディリクトリはすべてコピーされます。/E /Y によって、最後まで停止する事なく実行されます。 追加で使う事が想定されるオプション コピーしたくないディレクトリやファイルがある場合、以下のように指定します。 /EXCLUDE:ファイルのパス ファイルのパスが示すテキストファイル内に、除外するディレクトリやファイルにある文字列の一部を1 行に 1 つずつ記述します。 その文字列が、コピー対象ファイルの絶対パスの一部と一致した場合、そのファイルはコピーから除外されます。 ▼ 例 ⭕ "\obj\" という文字列を指定するとディレクトリ obj の下の全ファイルが除外 されます。 ⭕ ".obj" という文字列を指定すると .obj という拡張子のファイルがすべて除外されます ソースコード
' ***********************************************************
' 処理開始
' ***********************************************************
Set Fso = Wscript.CreateObject( "Scripting.FileSystemObject" )
Set Shell = Wscript.CreateObject( "Shell.Application" )

' ***********************************************************
' 実行中ディレクトリの取得
' ***********************************************************
strPath = Wscript.ScriptFullName 
Set objFile = Fso.GetFile( strPath )
strBackupFolder = Fso.GetParentFolderName( objFile )

' ***********************************************************
' バックアップ対象ディレクトリの取得
' ***********************************************************
' @ 省略すると、ルートはデスクトップ
Set objFolder = Shell.BrowseForFolder( 0, "バックアップするフォルダを選択してください", &H4B )

' A 文字列による直接指定
' strRoot = "c:\"
' Set objFolder = Shell.BrowseForFolder( 0, "バックアップするフォルダを選択してください", &H4B, strRoot )

' B ルートを番号で指定( この場合は C:\Users\username\AppData\Local )
' ※ あまり現実的ではない特殊ディレクトリの選択
' nRoot = &h1c
' Set objFolder = Shell.BrowseForFolder( 0, "バックアップするフォルダを選択してください", &H4B, nRoot )

if objFolder is nothing then
	WScript.Quit
end if
if not objFolder.Self.IsFileSystem then
	WScript.Echo "ファイルシステムではありません"
	WScript.Quit
end if

strTargetFolder = objFolder.Self.Path
strName = Replace( strTargetFolder, ":", "" )
strName = Replace( strName, "\", "_" )
strName = Replace( strName, " ", "" )
strName = "BK_" & strName

' ***********************************************************
' スクリプト作成
' ***********************************************************
Set OutFile = Fso.OpenTextFile( strBackupFolder & "\" & strName & ".vbs", 2, True )

OutFile.WriteLine "strName = """ & strName & """"
OutFile.WriteLine "strTarget = """ & strTargetFolder & """"
OutFile.WriteLine "strBackupFolder = """ & strBackupFolder & """"
OutFile.Write "if MsgBox( strTarget & vbCrLf & ""のバックアップを開始します。よろしいですか? (保存先:"" & strBackupFolder & ""\"" & strName & "")"""
OutFile.WriteLine ", 1 ) = 2 then"
OutFile.WriteLine "	Wscript.Quit"
OutFile.WriteLine "end if"

OutFile.WriteLine "Set WshShell = Wscript.CreateObject( ""WScript.Shell"" )"
OutFile.Write "ExecCommand = ""cmd.exe /C """"xcopy.exe """""" & strTarget & """""" """""" & strBackupFolder & ""\"" & strName & ""\"""""
OutFile.WriteLine " /D /E /C /S /Y & PAUSE"""""""
OutFile.WriteLine "Call WshShell.Run( ExecCommand )"

OutFile.Close

WScript.Echo "バックアップスクリプト : " &  strName & ".vbs" & " を作成しました"


' ***********************************************************
' ディレクトリ指定用番号
' https://docs.microsoft.com/ja-jp/windows/desktop/api/shldisp/ne-shldisp-shellspecialfolderconstants
' typedef enum {
' 	ssfALTSTARTUP = 0x1d,
' 	ssfAPPDATA = 0x1a,
' 	ssfBITBUCKET = 0x0a,
' 	ssfCOMMONALTSTARTUP = 0x1e,
' 	ssfCOMMONAPPDATA = 0x23,
' 	ssfCOMMONDESKTOPDIR = 0x19,
' 	ssfCOMMONFAVORITES = 0x1f,
' 	ssfCOMMONPROGRAMS = 0x17,
' 	ssfCOMMONSTARTMENU = 0x16,
' 	ssfCOMMONSTARTUP = 0x18,
' 	ssfCONTROLS = 0x03,
' 	ssfCOOKIES = 0x21,
' 	ssfDESKTOP = 0x00,
' 	ssfDESKTOPDIRECTORY = 0x10,
' 	ssfDRIVES = 0x11,
' 	ssfFAVORITES = 0x06,
' 	ssfFONTS = 0x14,
' 	ssfHISTORY = 0x22,
' 	ssfINTERNETCACHE = 0x20,
' 	ssfLOCALAPPDATA = 0x1c,
' 	ssfMYPICTURES = 0x27,
' 	ssfNETHOOD = 0x13,
' 	ssfNETWORK = 0x12,
' 	ssfPERSONAL = 0x05,
' 	ssfPRINTERS = 0x04,
' 	ssfPRINTHOOD = 0x1b,
' 	ssfPROFILE = 0x28,
' 	ssfPROGRAMFILES = 0x26,
' 	ssfPROGRAMFILESx86 = 0x30,
' 	ssfPROGRAMS = 0x02,
' 	ssfRECENT = 0x08,
' 	ssfSENDTO = 0x09,
' 	ssfSTARTMENU = 0x0b,
' 	ssfSTARTUP = 0x07,
' 	ssfSYSTEM = 0x25,
' 	ssfSYSTEMx86 = 0x29,
' 	ssfTEMPLATES = 0x15,
' 	ssfWINDOWS = 0x24
' } ShellSpecialFolderConstants;
' ***********************************************************



更新履歴
2009-06-28 : 記事作成
2013-04-02 : ダウンロード追加
2015-08-07 : ダウンロードを zip 化( Google Chrome 対応 )
2018-04-21 : 作成したスクリプト内の保存するフォルダ名を固定化( 変更を容易にするため )


関連する Microsoft ドキュメント

Shell Reference
Shell Objects for Scripting and Microsoft Visual Basic
Shell object
Shell.BrowseForFolder method



posted by lightbox at 2019-01-12 14:42 | VBScript | このブログの読者になる | 更新情報をチェックする

2019年01月11日


.regファイルでレジストリのキーや値を削除

ファイルには、Unicode(UTF-16)で保存して下さい。( レジストリエディタからエクスポートすると、Unicode で出力されます )
※ 経験から言うと、SHIFT_JIS で問題無いようですが

Microsoft のドキュメントはこちらです

たとえば、以下のような .reg ファイルでキーとデータを追加します
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\001]
"data"="abc"

データ型が REG_SZ の場合は、"名前"="値" で記述されます。REG_SZ は通常の文字列で、その他のデータ型の場合は、"名前"="データ型:値" とする必要があり、データ型によって値の記述方法が変わります。

例)
REG_BINARY => "名前"=hex:80,00,00,00,00,00,00,00
REG_DWORD => "名前"=dword:00000000

REG_EXPAND_SZ は、環境変数を % で挟んで記述する事によって、システムが置き換えて使用しますが、値の表現はバイナリと同じで16進数表現になります。但し、データ型としては hex(2) が使用されて、Unicode 文字のバイト表現になっています。

例)
"ServiceControlManagerExtension"=hex(2):25,00,73,00,79,00,73,00,74,00,65,00,6d,\
  00,72,00,6f,00,6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,\
  33,00,32,00,5c,00,73,00,63,00,65,00,78,00,74,00,2e,00,64,00,6c,00,6c,00,00,\
  00

キーの削除と値の削除です
Windows Registry Editor Version 5.00

[-HKEY_CURRENT_USER\Software\001]



Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\001]
"data"=-




レジストリのキーおよび値の名前の変更

キーまたは値を削除し、新しいキーまたは値を新しい名前で作成します



タグ:レジストリ
posted by lightbox at 2019-01-11 13:23 | Windows | このブログの読者になる | 更新情報をチェックする
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり