SQLの窓

2019年03月19日


コマンド リダイレクト演算子を使用する( Using command redirection operators )

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

⭐ 単純な リダイレクト は > です。
 コマンドプロンプトに表示されるはずの文字列をファイルに書き込みます。

⭐ >> を使うと追加書き込みです。

このような記号は、リダイレクト演算子と呼ばれます。

STDIN

0

キーボード入力

STDOUT

1

標準出力

標準エラー出力

2

Error output to the Command Prompt window

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

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

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

 C:\temp のディレクトリ

ファイルが見つかりません
( x が存在しないので『ファイルが見つかりません』と言うエラーメッセージが出ます ) この『ファイルが見つかりません』は、dir x > message.txt としても message.txt には書き込まれまれずに、コマンドプロンプトに表示されます。 しかし、以下のようにすれば全て書き込む事ができます。
dir x > message.txt 2>&1
この方法は解りにくいですが、標準出力と標準エラー出力を同時にリダイレクトしたいときに意味があります。
dir x 2> message.txt
だと、ファイルが見つかりません だけが書き込まれてしまいます。 キーボード入力をファイル化 リダイレクト演算子を使用して、キーボードから入力した文字列をテキストファイルに書き込む事ができます。
type con > message.txt
type コマンドは、ファイルの内容をコマンドプロンプトに表示するコマンドですが、con と言う特殊な予約文字列を使用すると、キーボードをファイルとみなした動作を行います。 ※ 終了時は 改行入力後、CTRL+Z を入力してEnter です 空のファイルを作成する nul と言う予約文字列を使用して以下のように実行します
type nul > message.txt
実行結果を表示しない nul は存在しないファイルのようなものなので、標準結果への出力を無かった事にできます
dir *.* > nul
エクスプローラで作成できないファイルを作成する .(ドット) で始まるファイルはエクスプローラで作成できませんが、以下のようにすれば作成する事ができます
type nul > .htaccess
posted by lightbox at 2019-03-19 14:26 | コマンドプロンプト | このブログの読者になる | 更新情報をチェックする

2019年02月12日


エクスプローラを右クリックしてそのフォルダで「コマンドプロント」を開くメニューを追加する .reg ファイル

エクスプローラを右クリックしてコマンドプロンプトを開きたい場合は、以下のレジストリをインポートします(右端のダウンロードアイコンでダウンロード / 拡張子 .reg )
Windows Registry Editor Version 5.00
 
[HKEY_CLASSES_ROOT\Folder\shell\cmd]
@="コマンドプロンプト(&P)"
 
[HKEY_CLASSES_ROOT\Folder\shell\cmd\command]
@="cmd.exe /s /k pushd \"%V\""

▼ 削除は以下です
Windows Registry Editor Version 5.00
 
[-HKEY_CLASSES_ROOT\Folder\shell\cmd]
 


▼ インストール場所をレジストリエディタで開くスクリプトをダウンロードします




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

2019年01月14日


バッチファイルで、任意のファイルを下位ディレクトリ全てにコピーする( または全て削除する )

FOR /D %%変数 IN (セット) DO コマンド [コマンド パラメーター]

    セットがワイルドカードを含む場合は、ファイル名ではなくディレクトリ名
    の一致を指定します。

FOR /R [[ドライブ:]パス] %%変数 IN (セット) DO コマンド [コマンド パラメーター]

    [ドライブ:]パスから始めて、ツリーの各ディレクトリで FOR 文を実行し
    ます。/R の後にディレクトリが指定されていない場合は、現在の
    ディレクトリが使用されます。セットが単一のピリオド (.) である場合は、
    ディレクトリ ツリーの列挙だけを行います。
まず、一階層コピーからです。カレントディレクトリに複数のディレクトリがあって、全てに一つのファイルをコピーしたい場合です。(バッチファイルでは、%i を %%i と書き換えています ) /D : 一階層ディレクトリ ▼ コピーしたいファイルが 001.txt の例
FOR /D %%i IN (*.*) DO (copy 001.txt "%%i")

以下はそれを全て削除する例です
FOR /D %%i IN (*.*) DO (del "%%i\001.txt")

次は、全階層コピーです。全てに一つのファイルをコピーしたい場合です。

/R : 全階層ディレクトリ

※ セットが単一のピリオド (.) である場合はディレクトリ ツリーの列挙
FOR /R %%i IN (.) DO (copy 001.txt "%%i")


全階層の 001.txt を削除します
FOR /R %%i IN (.) DO (del "%%i\001.txt")



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



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






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

関連する記事

バッチファイルを使用して、全ての階層の特定の種類(例えば *.png)のファイルを別のフォルダへコピーする



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

バッチファイルを使用して、全ての階層の特定の種類(例えば *.png)のファイルを別のフォルダへコピーする



▲ こんな感じでフォルダがあって、中には .png の画像ファイルがある事が解っています。このフォルダ内にある全ての png 画像を一つの別のフォルダにコピーするバッチファイルを作成します。

FOR /R %%i IN (*.png) DO (copy "%%i" C:\temp\image)
C:\temp\image は、コピー先のフォルダです。"%%i" のダブルクォーテーションは、ファイルのパスに空白が含まれている場合があるので囲う必要があります。(バッチファイルで書く場合は、% は %% に書き換える必要があります)

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



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






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


関連する記事

コマンドプロンプトで、任意のファイルを下位ディレクトリ全てにコピーする( そして全て削除する )





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

2019年01月13日


コマンドプロンプトで 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 | コマンドプロンプト | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。

また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。

※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです

対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。


※ エキスパートモードで表示しています

アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります

<% if:page_name eq 'archive' -%>
アーカイブページでのみ表示される内容
<% /if %>

<% if:page_name eq 'category' -%>
カテゴリページでのみ表示される内容
<% /if %>

<% if:page_name eq 'tag' -%>
タグページでのみ表示される内容
<% /if %>
この記述は、以下の場所で使用します
container 終わり



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

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