HDDの容量を圧迫しているごみ箱の中身を削除したいのに、なんだかGUIでやると全然動作しない・・・
空にしますか?とも聞いてこない・・・
で、何とかならないのかと思ったら、コマンドプロンプト上でコマンドを打てばよいとのこと。
Cドライブのごみ箱なので、
rd /s c:\$Recycle.Bin
でやってみた。
でけた。
HDDの容量を圧迫しているごみ箱の中身を削除したいのに、なんだかGUIでやると全然動作しない・・・
空にしますか?とも聞いてこない・・・
で、何とかならないのかと思ったら、コマンドプロンプト上でコマンドを打てばよいとのこと。
Cドライブのごみ箱なので、
rd /s c:\$Recycle.Bin
でやってみた。
でけた。
最近、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バージョンのダウンロードページを見つけたので貼っておく。
https://my.visualstudio.com/Downloads?q=visual%20studio%202015&wt.mc_id=o~msft~vscom~older-downloads
結局ダウンロードするには、Microsoftのアカウントが必要・・・
Windowsのコマンドプロンプトでpingをたたけば、そのIPアドレスと通信できるかがわかるが、ポート番号まで見てくれはしない。
IPアドレスとポート番号で通信できるか確認するときは、Powershellを使うらしい。
test-netconnection {IPアドレス} -port {ポート番号};
例)
test-netconnection 1.2.3.4 -port 5432;
で、実行すると以下のようなメッセージが返ってくる。
ComputerName : 1.2.3.4
RemoteAddress : 1.2.3.4
RemotePort : 8080
InterfaceAlias : Wi-Fi
SourceAddress : 172.22.128.11
TcpTestSucceeded : True ←つながりました!
警告: 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 ←ダメでした
基本
schtasks /query
CSV形式でファイル出力(/Vで詳細まで出力させる)
schtasks /query /V /FO CSV > d:\schtasklist1.csv
CSV形式でファイル出力(/Vで詳細まで出力させる,/NHで列タイトル非表示)
schtasks /query /V /NH /FO CSV > d:\schtasklist2.csv
こう見ると、タスクスケジューラにはいっぱいタスクが登録されているのだなぁ・・・と思った。