内部コマンドと外部コマンドについて

コマンドは大きく分けて外部コマンドと内部コマンドの2種類が存在する。
外部コマンドはファイル(exe,com)としても存在している。シェルみたいなもの。
内部コマンドはコマンドプロンプトの内部で定義されているコマンドである。

PowerShellは外部コマンドをそのまま使うことができるが、内部コマンドを直接は使えない。
「cmd /c 」をコマンドの先頭につけて実行する必要がある。

例えばmklinkは内部コマンドであるが、PowerShellで実行する場合、
「cmd /c mklink ...」とする。


シンボリックリンクを作成

PowerShell

  1. スタートメニューを右クリック
  2. Windows PowerShell(管理者)を起動
  3. cmd /c mklink /D シンボリックリンク作成先パス シンボリックリンク作成元パス
    cmd /c mklink /D C:\Users\k_uehara\rab\aaa C:\Users\k_uehara\rab\neko\aaa
    ※ 「/D」はディレクトリのシンボリックリンク作成を意味している。省略した場合、ファイル単位のシンボリックリンク作成になる。
    mklinkコマンドは内部コマンドなので「cmd /c」も含める。
    コマンドプロンプト(管理者権限)である場合、「cmd /c 」部分はもちろん不要である。

mklinkコマンドの説明を表示

	cmd /c mklink /?


例2


	cmd /c mklink /D C:\xampp\htdocs\park C:\Users\user\git\park
	

例3 ファイルのシンボリックリンクを作成する場合


	cmd /c mklink  C:\xampp\htdocs\index.html C:\Users\user\git\home\index.html
	

batファイルが置いてあるディレクトリに移動する

 cd /d %~dp0

コピー

copy コピー元 コピー先
	copy "C:\Users\user\Downloads\kaigo\archive\favicon_io (1)\favicon-32x32.png" "C:\Users\user\Downloads\kaigo\marker\fac_type_1.png"
	
コピーのついでにファイル名も変更できる。
ディレクトリにスペースが含まれる場合は「"」で囲む。


USBにコピー

dirコマンドでコピー元のディレクトリに移動後に下記コマンド。
xcopy /E *.* E:¥
「E:\」の部分はUSBのドライブ


ファイル名やサイズ、更新日付の一覧を取得し、クリップボードに保存

ファイル名やサイズ、更新日付の一覧を取得し、クリップボードに保存
dir *.mp4 | clip

ファイル名のみ一覧表示し、クリップボードに保存
dir *.mp4 /b | clip

異常状態のWindows10からコマンドプロンプトでUsersのファイル群を救出

PCは「REGZA PC D712/V3HWS」で検証

  1. 予め、別PCにてWindows10のインストールUSBを作成しておく。
  2. BIOSを起動して、USBから実行するように設定する。
  3. PCにインストールUSBを挿して、PCを再起動するとWindows10のインストール画面が立ち上がる。
  4. 「コンピューターを修復する」をクリック。
  5. 「トラブルシューティング」を選択。
  6. 「コマンドプロンプト」を選択。
  7. コマンドプロンプトが起動する。
  8. 「c:」と入力してEnterキーを押すとC:\ドライブに移動する。
  9. 「echo list volume | diskpart」とコマンド入力するとドライブ一覧が確認できる。(ドライブ一覧が表示されるまで数秒ほどのタイムラグがある。)
  10. 下記xcopyコマンドを入力すると「C:\Users」のファイル、フォルダをFドライブにコピーされ、ファイル救出ができる。
    xcopy /E C:\Users F:\
  11. 以上

ポートを仕様しているプログラムを確認するコマンド

netstat -oan

ワンライナー

&&でコマンドを連結することによりワンライナーの記述にすることができる。
cd C:\xampp\mysql\bin && mysqldump --default-character-set=utf8 -uroot sakerui_hanbai m_items > C:\tmp\m_items3.sql

特定のディレクトリ内(階層化)にする指定拡張子のファイルを一カ所に集める


	for /r "特定のディレクトリパス" %i in (*.txt *.srt) do copy "%i" "ファイルを一カ所に集める先のディレクトリ" /Y
	

「C:\Users\user\Videos\movie_edit」ディレクトリ内(すべての階層も含む)に存在するすべてのtxtとsrtファイルを「C:\Users\user\OneDrive\mp4\movie_doc」にコピーする。コピーする際、上書き確認はしません。

	for /r "C:\Users\user\Videos\movie_edit" %i in (*.txt *.srt) do copy "%i" "C:\Users\user\OneDrive\mp4\movie_doc" /Y