エクスプローラとかPowerShellとかの使い方の記事です。
PowerShellを使っていると、「エクスプローラの今のフォルダでPowerShellを使いたい」と思う事がよくあります。
Windows 8であれば、ショートカット Alt+F R で開くことができますが、Windows 7では使えませんし、今後も残るUIなのか少し心配だったりもします。
私がよくやってたのが、
- Windowsキー+Rで「ファイル名を指定して実行」から powershell と入力しPowerShellを起動
- アドレスバーの文字列をコピー
- cdを打ってPowerShellコンソールにパスを貼り付け
です。まあ習慣化しているとはいえ、手順が多く面倒です。もう少し良い方法があるといいですね。
#エクスプローラの現在のフォルダから PowerShell を起動
実は(?)、エクスプローラのアドレスバーにpowershellと入力する事で、このフォルダをカレントとしPowerShellコンソールを開くことができます。
powershell
エクスプローラでアドレスバーにフォーカスする Alt+Dのショートカットも覚えておくと良いでしょう。
#PowerShellのカレントフォルダからエクスプローラを開く方法
逆パターンです。これも昔はパスをコピペする面倒な事をやっていましたが、もっと簡単な方法があります。
explorer
PowerShellコンソールでexplorerと打てば、カレントフォルダでエクスプローラが立ち上がります。
それならばと思う人も多いでしょうが、起動オプションにパス文字列を指定してそのフォルダから開くこともできます。
環境変数と併用して
explorer $Env:ProgramFiles
等とするのもちょっとしたTipsになるでしょうか。
キータイプ的に、もう少し楽な方法もあります。
start .
startはStart-Processのエイリアスです。「.」はカレントフォルダを意味しますから、シェル実行のようにカレントフォルダのエクスプローラを起動する事ができます。
#アドレスバー活用法
アドレスバーの詳細な動作はよく解らない部分もありますが、「ファイル名を指定して実行」に近い動きをします。
したがって、標準でパスの通った実行ファイルであればどこからでも起動することができます。
##メモ帳で新規ファイル作成
「エディタの支援とか要らないのでちょっと数行のテキストファイルを作成したい」というケースがあります。
右クリック、新規作成~等とやっても良いですが、
notepad test.ps1
等とやれば、カレントフォルダにtest.ps1を作成して即編集作業に入れます。
こういった感じで、実行ファイルの起動オプションもそれなりに通ります。
##cmd.exeで新しいフォルダを作成
細かい話ですが、エクスプローラ上で新しいフォルダを作成する手順を億劫に感じる場合があります。
その中でこのような方法もあるよ、という話なのですが。
cmd /c mkdir newFolder
こんなコマンドで、newFolderというフォルダを作成する事もできます。
cmd.exeのcオプションは、引数で渡されたコマンドを実行して終了します。それを使ってmkdirコマンドを渡し、フォルダ作成する手です。
mkdirは複数フォルダの作成やサブフォルダの作成もできるので、覚えておくといつか役に立つ時が来るかもしれません。
cmd /c mkdir fol1 fol2 fol3
cmd /c mkdir fol1\fol2\fol3
cmd.exeにはkというオプションもあり、これはコマンド実行した後、コンソールが終了せず残ります。
実行結果を確認したい場合はcの代わりにkを指定するのが良いでしょう。
PowerShellを使わずcmd.exeを使っているのは、cmd.exeの方が起動が速いからですね。
##PowerShellで新しいフォルダを作成
まあ、PowerShellを使ってもできます。
powershell mkdir fol1
(PowerShellにコマンドを渡す際は「-Command」の指定が必須だったような気がしていたのですが、そういう訳でもないようです。昔から?)
cmd.exeのkオプションのようにコンソールを終了したくない場合は「-NoExit」を指定します。
powershell -NoExit mkdir fol1
凝った操作を書ける点にPowerShellの強みがありますが、しかし「|」等の文字をアドレスバーからPowerShellに渡すことはできないようです。つまりパイプライン操作が書けません。
複雑なコマンドは大人しくコンソールを起動するのが良さそうです。
##cmd.exeコマンドの結果だけ確認する
個人的に、コマンドプロンプトを開いてやる事の筆頭がipconfigです。ipconfigの為だけにコマンドプロンプトを使うという人も少なくないと言っても過言ではないのでは。
よくやるのは、Windowsキー+Rでcmdと打ち、起動したコマンドプロンプトでipconfigと打つやつです。
まあこれで良いのですが、たかがipconfigに2ステップの手順を掛けるのが何だか煩わしい。コマンドプロンプトが出てくるまでのキー入力待ちがなんかいやだ。
あと確認が終わったら、簡単に消えて欲しいと思いませんか?思うとします。そういう場合。
cmd /c ipconfig&pause
このようにすると、ipconfigの実行後、キー入力待ちになり何かキーを打った時点で終了します。
cmd.exeは&でコマンドをつなぐと順次実行します。今回はipconfig実行後にpauseを実行し、キー入力待ちに移行します。
ウィンドウを片付けやすいので、本当に1コマンドの結果だけ確認したい場合はこういうのもアリと思います。
コマンドの内容から分かると思いますが、この辺はアドレスバー固有の動作ではなく「ファイル名を指定して実行」でも同様に動作します。
##管理者権限でPowerShellを起動
これをアドレスバーから簡単にできると良いのですが、中々良い方法が無いですね。
powershell start powershell -Verb runas
これがオーソドックスな方法なのですが、長ったらしい上、カレントフォルダが引き継がれません。
powershell start powershell '-NoExit','cd',$pwd -Verb runas
ですのでこうすれば、管理者権限かつカレントディレクトリに移動した状態で起動できます。どうも強引ですが。
##管理者権限でPowerShellを起動するバッチファイル
予め用意した環境に限定されてしまいますが、カレントディレクトリ&管理者権限でPowerShellを起動できるバッチファイルを作成しておくと、時に役立つかもしれません。
バッチファイルをパスの通ったフォルダに保存しておけばそのコマンドをいつでも利用できます。
Windowsのフォルダに保存してしまいましょう。私はよくWindowsフォルダに頻用するショートカット等を入れておきます。
powershell start powershell '-NoExit','cd',$pwd -Verb
名前はpsa.batとしています。PowerShellでファイル作成をやってしまいましょう。
Windowsフォルダにファイルを作成するには管理者権限が必要ですので、
あらかじめ管理者権限のPowerShellを起動しておき、以下のコマンドでファイルを作成します。
"powershell start powershell '-NoExit','cd',`$pwd -Verb runas"|sc ($env:windir+'\psa.bat')
(「sc」はSet-Content、ファイル書き込みのコマンドです)
このようなファイルを作っておけば、エクスプローラのアドレスバーでpsaを実行すると、そのフォルダで管理者権限のPowerShellを起動できるようになります。
##cmd.exeを起動するバッチファイルの作成
cmd.exeのc,kオプションをもっと気楽に使いたいと思ったので、それぞれ c.bat, k.bat というバッチファイルにしてしまいます。
cmd /c %*
cmd /k %*
こんなのを作ります。(%*は、バッチファイルに渡されたパラメータをすべて展開します。)
'cmd /c %*'|sc ($env:windir+'\c.bat')
'cmd /k %*'|sc ($env:windir+'\k.bat')
これでバッチファイルを作成しておき、アドレスバーでcまたはkに続きcmd.exeのコマンドを入力する事で実行することができるようになります。
c dir>files.txt
k mkdir folder
といった具合ですね。