Seasons.NET

ちょっとした技術ブログです

PowerShellを指定したディレクトリで起動したい

cmd.exeは、第1引数にディレクトリを渡して起動すると、作業ディレクトリをそこにすることができますが、
powershell.exeは、引数の動作が基本的に-commandというスクリプトを実行する為のものしかない為、
しょうがないんで、.NETでちょー簡単なツールで解決するようにした。

このツールでは、Processクラスで、作業ディレクトリを指定して、powershellを起動させてます。
なので、あとは、DYNA,あふ等のファイラーでショートカットを割り当てて、第1引数に
作業ディレクトリを指定して起動させてください。

 1 using System;
 2 using System.Diagnostics;
 3 using System.IO;
 4 
 5 namespace PowerShellTools
 6 {
 7     static class Program
 8     {
 9         /// <summary>
10         /// The main entry point for the application.
11         /// </summary>
12         [STAThread]
13         static void Main()
14         {
15             StartPowerShell();
16         }
17         static void StartPowerShell()
18         {
19             string[] args = Environment.GetCommandLineArgs();
20 
21             if (args.Length <= 1)
22                 return;
23             if (Directory.Exists(args[1]) == false)
24                 return;
25 
26             Process p = new Process();
27             ProcessStartInfo psi = new ProcessStartInfo();
28             psi.FileName =
29                 @"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe";
30             psi.WorkingDirectory = args[1];
31             p.StartInfo = psi;
32             p.Start();
33         }
34     }
35 }