カテゴリー: Windows

コマンドプロンプト覚書 ゴミ箱を空に

HDDの容量を圧迫しているごみ箱の中身を削除したいのに、なんだかGUIでやると全然動作しない・・・
空にしますか?とも聞いてこない・・・

で、何とかならないのかと思ったら、コマンドプロンプト上でコマンドを打てばよいとのこと。

Cドライブのごみ箱なので、

rd /s c:\$Recycle.Bin

でやってみた。
でけた。

PowerShell覚書 ファイル操作いろいろ

最近、VBSよりPowerShellのほうをよく使うようになった。
イケてないところは多々あるものの、デバッグもしやすいので便利だ。

ファイル操作のアレコレをこの投稿にいろいろ書き足していこうと思う。
(アレコレって、漢字だと「彼是」って書くのね。知らんかった。)

【ファイル検索】
例えば、「Cドライブ」直下のファイルを漁りたいときはこんな感じ。
Get-ChildItemの戻り値を「 」(半角スペース)でSplitしてやれば、ファイル名のリストを取得できる。

$dir = "C:\";
$files = Get-ChildItem $dir;
$files_arr = $files -split " ";

【フォルダ検索】
「W」で始まる「Cドライブ」直下のディレクトリを漁りたいときはこんな感じ。
Get-ChildItemの戻り値を「 」(半角スペース)でSplitしてやれば、ディレクトリ名のリストを取得できる。
Where-Object で、「$_.PSIsContainer」を指定すればディレクトリだけを取得できる。

$dir = "C:\";
$subdir = Get-ChildItem $dir | Where-Object { $_.PSIsContainer } | Select-String "^W";
$sub_arr = $subdir -split " ";

【フォルダ・ファイル有無確認】
指定フォルダ、ファイルがあるかどうかは「Test-Path」を使う。

if (Test-Path ($dir)) {
   # あるとき
} else {
   # ないとき
}

【フォルダ作成】
フォルダ作成は「New-Item」で、パスを指定して、「-ItemType Directory」のオプションをつける。
「-Force」はすでにフォルダがあるときは、エラーにならないようにするときにつける。

New-Item $dir -ItemType Directory -Force;

【ファイルコピー】
ファイルコピーは「Copy-Item」で、コピー元のパスを指定して、「-Destination」でコピー先を指定する。
「-Force」はすでにコピー先にファイルがあっても、エラーにならないようにするときにつける。

Copy-Item $src_path -Destination $goto_path -Force;

【ファイル移動】
ファイル移動はコピーしてから削除するのがいい。
「Remove-Item」の「-Recurse」は削除対象がフォルダであれば、中のファイルを削除してからフォルダも消してくれる。
「-Force」をつければ、隠しファイルとかも消してくれるそう。

Copy-Item $src_path -Destination $goto_path -Force;
Remove-Item -Path $src_path -Recurse -Force;

【ライブラリ利用】
ライブラリは、パスを指定して読み込んでやらないと使えない。こんな感じ。

[string]$dll       = "C:\....\.....dll";
[void][reflection.assembly]::LoadFrom($dll);

Visual Studio 2015 インストーラ他

なんだかもう仕事がいやになりました。
色んなことが進みません。

サーバと接続できないし、Visual Studioもインストールできないし・・・

なんで、最新バージョンしかださず、古いバージョンも簡単に表示してくれないんだ!
必要なんだよ!!!

と、怒っていたが、すんなり行くときはいくもので。
とりあえず2015バージョンのダウンロードページを見つけたので貼っておく。

https://my.visualstudio.com/Downloads?q=visual%20studio%202015&wt.mc_id=o~msft~vscom~older-downloads

結局ダウンロードするには、Microsoftのアカウントが必要・・・

PowerShell覚書 指定IPアドレス+ポート番号で接続確認

Windowsのコマンドプロンプトでpingをたたけば、そのIPアドレスと通信できるかがわかるが、ポート番号まで見てくれはしない。
IPアドレスとポート番号で通信できるか確認するときは、Powershellを使うらしい。

test-netconnection {IPアドレス} -port {ポート番号};

例)

test-netconnection 1.2.3.4 -port 5432;

で、実行すると以下のようなメッセージが返ってくる。

OKの時

ComputerName : 1.2.3.4
RemoteAddress : 1.2.3.4
RemotePort : 8080
InterfaceAlias : Wi-Fi
SourceAddress : 172.22.128.11
TcpTestSucceeded : True ←つながりました!

NGの時

警告: TCP connect to (1.2.3.4 : 3306) failed
警告: Ping to 1.2.3.4 failed with status: TimedOut

ComputerName : 1.2.3.4
RemoteAddress : 1.2.3.4
RemotePort : 3306
InterfaceAlias : Wi-Fi
SourceAddress : *.*.*.*(こっちのアドレス)
PingSucceeded : False  ←ダメでした
PingReplyDetails (RTT) : 0 ms
TcpTestSucceeded : False  ←ダメでした

Windows覚書 タスクスケジュール一覧の取得コマンド

基本

schtasks /query

CSV形式でファイル出力(/Vで詳細まで出力させる)

schtasks /query /V /FO CSV > d:\schtasklist1.csv

CSV形式でファイル出力(/Vで詳細まで出力させる,/NHで列タイトル非表示)

schtasks /query /V /NH /FO CSV > d:\schtasklist2.csv

こう見ると、タスクスケジューラにはいっぱいタスクが登録されているのだなぁ・・・と思った。