ja:windows:cmd-tips
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
ja:windows:cmd-tips [2014/05/14 12:16] – [コードページ一覧] makoto | ja:windows:cmd-tips [2014/06/11 09:24] (現在) – [現在のYYYYMMDD形式の文字列を手軽に取得する] makoto | ||
---|---|---|---|
行 31: | 行 31: | ||
==== もっと手軽にSleep処理を行う ==== | ==== もっと手軽にSleep処理を行う ==== | ||
なんと**timeout**コマンドなる、そのものずばりなコマンドがあった。\\ | なんと**timeout**コマンドなる、そのものずばりなコマンドがあった。\\ | ||
- | 書式は**"timeout /T 秒数 [/NOBREAK]" | + | 書式は<code winbatch> |
+ | timeout /T 秒数 [/NOBREAK] | ||
+ | </ | ||
画面表示もカウントダウンしてくれるので、非常に良い。\\ | 画面表示もカウントダウンしてくれるので、非常に良い。\\ | ||
無言で待機させたい場合はNULLへリダイレクトすればよい。 | 無言で待機させたい場合はNULLへリダイレクトすればよい。 | ||
行 55: | 行 57: | ||
テキストファイルをカンマ区切りで分割し、任意の列の文字列だけをECHOするとか。((**/ | テキストファイルをカンマ区切りで分割し、任意の列の文字列だけをECHOするとか。((**/ | ||
=== 複数の空白文字を含む場合の取り扱い === | === 複数の空白文字を含む場合の取り扱い === | ||
- | FOR /F " | + | FOR /F " |
上記のような処理で、hogehoge.txtを読み込んだ時、hogehoge.txtが下記のような状態だったとする。 | 上記のような処理で、hogehoge.txtを読み込んだ時、hogehoge.txtが下記のような状態だったとする。 | ||
行 66: | 行 68: | ||
これを上のコマンドで処理すると、出力は以下の様になる。 | これを上のコマンドで処理すると、出力は以下の様になる。 | ||
<code winbatch> | <code winbatch> | ||
- | FOR /F " | + | FOR /F " |
BBB | BBB | ||
EEE | EEE | ||
行 74: | 行 76: | ||
* 連続する空白文字は1文字として扱われる。\\ (空白文字毎に別の部分文字列に分解されない) | * 連続する空白文字は1文字として扱われる。\\ (空白文字毎に別の部分文字列に分解されない) | ||
* 行頭の空白文字は無視される。\\ (行頭の空白文字の後に来る最初の部分文字列が1つ目の文字列として取り扱われる) | * 行頭の空白文字は無視される。\\ (行頭の空白文字の後に来る最初の部分文字列が1つ目の文字列として取り扱われる) | ||
- | ===== 現在のYYYYMMDD形式の文字列を手軽に取得する ===== | + | |
- | 以前某IT系サイトを見ていると、年月日をYYYYMMDD形式で取得する場合、 | + | |
- | <code winbatch> | + | |
- | set YYYYMMDD=%Date: | + | |
- | echo %YYYYMMDD% | + | |
- | </ | + | |
- | のようにして取得する。\\ というような事が書かれていて、正直「めんどくせぇなぁ…」と思っていたのだが、目の覚めるような代替案を発見。 | + | |
- | <code winbatch> | + | |
- | set YYYYMMDD=%DATE:/ | + | |
- | echo %YYYYMMDD% | + | |
- | </ | + | |
- | これでOK。DATEで出力される文字列から/ | + | |
- | ちなみにTIMEでも**" | + | |
- | ミリ秒が残って良いなら、こんな感じで午前中に発生する行頭の空白文字を除去(0に置換)できる。 | + | |
- | <code winbatch> | + | |
- | set dummy=%TIME:: | + | |
- | set HHMMSS=%dummy: | + | |
- | echo %HHMMSS% | + | |
- | </ | + | |
===== 任意のテキストファイルを一行ずつ読み込んで処理する ===== | ===== 任意のテキストファイルを一行ずつ読み込んで処理する ===== | ||
任意のテキストファイルを一行ずつ読み込んで処理した場合は次のようにする。 | 任意のテキストファイルを一行ずつ読み込んで処理した場合は次のようにする。 | ||
行 111: | 行 95: | ||
これを実際やると、末尾の2が消えます。\\ | これを実際やると、末尾の2が消えます。\\ | ||
これを出力したい場合は、リダイレクトとecho命令の位置を差し替えて下さい。 | これを出力したい場合は、リダイレクトとecho命令の位置を差し替えて下さい。 | ||
- | </code winbatch> | + | <code winbatch> |
set AAA=hogehoge=2 | set AAA=hogehoge=2 | ||
> | > | ||
行 132: | 行 116: | ||
**d** : ドライブレター+コロンのみ\\ | **d** : ドライブレター+コロンのみ\\ | ||
**p** : パスのみ(ドライブレター、ファイル名を除く)\\ | **p** : パスのみ(ドライブレター、ファイル名を除く)\\ | ||
- | **n** : 拡張子のみ | + | **n** : 拡張子を除いたファイル名のみ\\ |
+ | **x** : 拡張子のみ\\ | ||
+ | **t** : ファイルの更新日時\\ | ||
+ | **z** : ファイルのサイズ(Byte)\\ |
ja/windows/cmd-tips.1400069816.txt.gz · 最終更新: 2014/05/14 12:16 by makoto