SQLの窓

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日


コマンド リダイレクト演算子を使用する( 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 | コマンドプロンプト | このブログの読者になる | 更新情報をチェックする

2018年02月07日


アンパサンド(&) を使用してコマンドプロンプト(バッチファイル) のコマンドを一行で複数実行

以下は、ファイル名を指定して実行からの起動ですが、コマンドプロンプトを表示したままで保持し、必要がなくなればすぐ閉じる事ができます
(もちろんコマンドプロンプトからの実行でもかまいませんが、その場合は pause は必要無いです)

/C は、/C の後の文字列を新しい cmd.exe で実行した後、cmd.exe を終了するという意味なので、dir を実行した後、pause で一時停止して入力待ちとなり、何かキーを押せば cmd.exe が終了します。

最後に pause を使う方法は、コンソールに出力された結果を画面で確認できるようにする為に用いられます。
cmd /c dir & pause


また、複数のアプリケーション(バッチファイル内の行単位の処理)をプログラムから呼び出したい(call コマンドを使用)場合で、外部にバッチファイルを作りたくない場合に使用します。


次のサンプルは、ユーザフォルダの dir の結果をテキストファイルにリダイレクトして dir の結果をメモ帳で開きます。

notepad の起動に start を使用しているので、元の cmd.exe は終了して結果の dir.log を表示したメモ帳のみが Windows 上に残ります
cmd /c cd %HOMEPATH% & dir > c:\temp\dir.log & start notepad c:\temp\dir.log



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



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






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




posted by lightbox at 2018-02-07 14:09 | コマンドプロンプト | このブログの読者になる | 更新情報をチェックする
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 ドロップシャドウの参考デモ
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり