パソコン忘備録
テンプレート
最終更新:
Bot(ページ名リンク)
-
view
テンプレート
概要
他のスクリプトと比べると組める内容が脆弱だが、それでもfor文、if文、call文が使える。
ここではコマンドプロンプトで行えるものを紹介する。
ここではコマンドプロンプトで行えるものを紹介する。
注釈
パイプ(縦線)”|”はatwiki編集機能の都合上、全て全角|にしています。実行する際は半角|にして行ってください。
操作 | コマンド |
txtファイルを一斉に開く | for %V in ( *.txt ) do %V |
SQLファイルを一斉実行 | for %V in ( *.sql ) do psql -d DBNAME -U USERNAME -f %V |
d:\img\以下のJPGを上階層にコピー | for /R %V in (*.jpg) do copy /Y "%V" d:\img\ |
txtファイル全てをtemp.txtにマージ | for %V in ( *.txt ) do copy temp.txt + %V temp.txt |
空ファイル作成 | echo:> temp.txt |
子フォルダ含め txtファイルを検索し出力 | dir /s /b *.txt |
file,urlを含むテキストファイルを検索 | findstr /n /s "file url" *.txt |
"file url"を1語とするファイルを検索 | findstr /n /s /c:"file url" *.txt |
txtファイルから"TODO"を含む行を抜粋してtodo.txtにマージ | findstr /n /s "TODO" *.txt > todo.txt |
行番号つきで2つのファイルの差分を表示 | fc /n a.txt b.txt |
ファイルを含めてツリー構造表示 | tree /f |
ポート利用状況一覧 (a:全Listenポート、n:アドレスとポート番号、o:プロセスID、b:プロセス名) |
netstat -abno |
プロセスIDからプロセス名を検索 (FI=フィルター) |
tasklist /FI "PID eq 2780" |
PIDとサービス一覧 (SVC=サービス) |
tasklist /SVC |
ポートを利用しているプロセスを検索 | netstat -oan | findstr ":80" |
第4オクテット=1~3にPINGを行う | for %i in (1,2,3) do ping 192.168.0.%i |
ルートを追加 | route -p ADD 192.168.220.0(アクセス先セグメント) MASK 255.255.255.0(ネットマスク) 192.168.~(自身のセグメントGW) |
標準入力からファイルを作成 | copy con temp.txt |
現ネットI/F設定をファイル出力し、設定ファイルを読込む | netsh interface ip dump > dump.txt netsh -f landump.nsh |
固定IP設定からDHCP設定に変更 (ローカル...はアダプタ名) |
netsh interface ip set address "ローカル エリア接続" dhcp |
- 基本構文
Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corporation. All rights reserved. C:\UserName\root> と表示されるが、コマンド実施時のPATHに問題がなければ次のコマンドを入力 C:\UserName\root>cd \ ↓ C:\ と表示されるのでこれ以降のコマンド実行が若干だが見やすくなる。
- 日付
変数を初期化するのは、以前実行して代入した値が変数に残っていることがあるため初期化は必ず行う。
見ててまどろっこしいかもしれないが、%DATE%(?共通変数)を任意の形で値を持つ時には
(取得桁数)→(デリミタ置換)
の手順を取る必要がある。桁数~デリミタ置換までの処理は双方を&で結ぶことで1行にすることは可能。しかしそれが効率的で可読性を高めるかどうかは好み次第だと思う。
見ててまどろっこしいかもしれないが、%DATE%(?共通変数)を任意の形で値を持つ時には
(取得桁数)→(デリミタ置換)
の手順を取る必要がある。桁数~デリミタ置換までの処理は双方を&で結ぶことで1行にすることは可能。しかしそれが効率的で可読性を高めるかどうかは好み次第だと思う。
REM 変数dateを初期化→%DATE%から、5~8文字目を取得→デリミタを-に置換する set date= set date=%DATE:~5,8% set date=%date:/=-% REM 変数timeの初期化→%TIME%から、0~8文字目を取得→デリミタを削除 set time= set time=%TIME:~0,8% set time=%time::=% echo %date% %time%