1. 程式人生 > >Windows PowerShell 基本語法及常用命令

Windows PowerShell 基本語法及常用命令

PowerShell常用命令:

一 Get類

1.Get-Command : 得到所有PowerShell命令,獲取有關 cmdlet 以及有關 Windows PowerShell 命令的其他元素的基本資訊。

                              包括Cmdlet、Alias、Function。

2.Get-Process : 獲取所有程序
3.Get-Help  : 顯示有關 Windows PowerShell 命令和概念的資訊

4.Get-History  : 獲取在當前會話中輸入的命令的列表

5.Get-Job :  獲取在當前會話中執行的 Windows PowerShell 後臺作業

6.Get-FormatData : 獲取當前會話中的格式資料

7.Get-Event : 獲取事件佇列中的事件

8.Get-Alias : 獲取當前會話的別名

9.Get-Culture :獲取作業系統中設定的當前區域性

10. Get-Date :獲取當前日期和時間

11. Get-Host : 獲取表示當前主機程式的物件

12.Get-Member : 獲取物件的屬性和方法。

                             如:$var = 3

                                    $var | get-member

                              結果:TypeName: System.Int32

                             Name        MemberType      Definition                                                                                           
                             ----                   ----------         ----------                                                                                           
                             CompareTo       Method      int CompareTo(System.Object value), int CompareTo(int value)                                         
                             Equals              Method     bool Equals(System.Object obj), bool Equals(int obj)                                                 
                            GetHashCode    Method     int GetHashCode()                                                                                    
                            GetType            Method     type GetType()                                                                                       
                            GetTypeCode     Method     System.TypeCode GetTypeCode()                                                                        
                            ToString             Method     string ToString(), string ToString(string format), string ToString(System.IFormatProvider provider...

13.Get-Random : 從集合中獲取隨機數或隨機選擇物件

14.Get-UICulture : 獲取作業系統中當前使用者介面 (UI) 區域性設定

15.Get-Unique : 從排序列表返回唯一專案

16.Get-Variable :獲取當前控制檯中的變數

17.Get-EventLog : 獲取本地或遠端計算機上的事件日誌或事件日誌列表中的事件

18.Get-ChildItem : 獲取一個或多個指定位置中的項和子項

19.Get-Content : 獲取指定位置的項的內容

20.Get-ItemProperty :獲取指定項的屬性

21.Get-WmiObject : 獲取 Windows Management Instrumentation (WMI) 類的例項或可用類的相關資訊

22.Get-Location  :獲取當前工作位置的相關資訊(如:F:\Users\TaoMin )

23.Get-PSDrive:獲取當前會話中的 Windows PowerShell 驅動器

24.Get-Item:獲取位於指定位置的項

25.Get-Process :獲取在本地計算機或遠端計算機上執行的程序

26.Get-Service : 獲取本地或遠端計算機上的服務

27.Get-Transaction :獲取當前(活動)事務

28.Get-ExecutionPolicy :獲取當前會話中的執行策略

二.Set類 (set類命令一般都含有引數)

1.Set-Alias : 在當前 Windows PowerShell 會話中為 cmdlet 或其他命令元素建立或更改別名(替代名稱)

                      如:如:Set-Alias aaa Get-Command

2.Set-PSDebug :開啟和關閉指令碼除錯功能,設定跟蹤級別並切換 strict 模式

3.Set-StrictMode :建立和強制執行表示式、指令碼和指令碼塊中的編碼規則

4.Set-Date :將計算機上的系統時間更改為指定的時間

5.Set-Variable :設定變數的值,如果該變數還不存在,則建立該變數

6.Set-PSBreakpoint :在行、命令或者變數上設定斷點

7.Set-Location :將當前工作位置設定為指定的位置

8.Set-Item :將項的值更改為命令中指定的值

9.Set-Service :啟動、停止和掛起服務並更改服務的屬性

10.Set-Content :在項中寫入內容或用新內容替換其中的內容

11.Set-ItemProperty :建立或更改某一項的屬性值

12.Set-WmiInstance :建立或更新現有 Windows Management Instrumentation (WMI) 類的例項

13.Set-ExecutionPolicy :更改 Windows PowerShell 執行策略的使用者首選項。

三.Write類 

 1.Write-Host : 將自定義輸出內容寫入主機。類似於.net的 write()或者writeline()功能

 2.Write-Progress :在 Windows PowerShell 命令視窗內顯示進度欄

 3.Write-Debug :將除錯訊息寫入控制檯

 4.Write-Verbose:將文字寫入詳細訊息流

 5.Write-Warning :寫入警告訊息

 6.Write-Error : 將物件寫入錯誤流

 7.Write-Output : 將指定物件傳送到管道中的下一個命令;如果該命令是管道中的最後一個命令,則在控制檯上顯示這些物件

 8.Write-EventLog  :將事件寫入事件日誌

PowerShell變數、常量、陣列:

一、變數

PowerShell的變數無需預定義,可直接使用。當使用一個變數時,該變數被自動宣告。

變數以 $  符號開頭。如:$a

PowerShell普通變數:

1.給變數賦值:

   方式一:

   $a = "This is a string"

   $b = 123

   $c = 0.125

   方式二:

   Set-Variable var 100

   Set-Variable var1 ”test“

   Set-Variable va2 800

2.獲取變數值

   get-variable var   #獲取單個變數值

   get-variable var*  #獲取多個變數值

3.清空變數值

   clear-variable var

4.刪除變數

   remove-variable var

5.連線兩個字串變數

   $a = "This is the 1st string"

   $b = "This is the 2nd string"

   $c = $a + " and " + $b

   $c

   結果:This is the 1st string and This is the 2nd string

6.變數的方法

   $date = Get-Date  #獲取當前時間

   $date.AddDays(3)  #當前時間加三天

PowerShell特殊變數:

    PowerShell的特殊變數由系統自動建立。使用者自定義的變數名稱應該不和特殊變數相同。

    $^ :前一命令列的第一個標記

    $$ :前一命令列的最後一個標記

    $_ :表示表示當前迴圈的迭代變數。

    $? :前一命令執行狀態,成功(Ture) 或者 失敗(False)

    $Args :為指令碼或者函式指定的引數

    $Error :錯誤發生時,錯誤物件儲存於變數 $Error 中

    $Foreach :引用foreach迴圈中的列舉器

    $Home :使用者的主目錄

    $Host :引用宿主 POWERSHELL 語言的應用程式

    $Input :通過管道傳遞給指令碼的物件的列舉器

    $LastExitCode :上一程式或指令碼的退出程式碼

    $Matches : 使用 –match 運算子找到的匹配項的雜湊表

    $PSHome :Windows PowerShell 的安裝位置

    $profile :標準配置檔案(可能不存在)

    $StackTrace : Windows PowerShell 捕獲的上一異常

    $Switch :switch 語句中的列舉器

強制指定變數型別:

一般不需要為PowerShell的變數指定型別。但是也可以強制指定變數型別。

如:[int] $b = 5

      則此變數只能包含整數值,如果包含其他型別會出錯。 如 [int] $b = "aaaa" 就會報錯

常見變數型別如下:  

      [int] 、[long]、[string] 、[char] 、[bool] 、[byte] 、[double] 、[decimal] 、[single]

      [array] :陣列物件

      [xml] :XML物件

      [hashtable] :雜湊表物件,類似於一個字典物件

二、常量

     PowerShell常量的值永遠不會變。常量不能被刪除。

     使用常量之前,需要通過Set-Variable來建立常量,且指定一些引數來使它等於某個常量

     當使用常量的時候,必須用$開頭。但是,使用Set-Variable定義常量時,不可用$符號開頭。

     例如:

             $aryComputers = "loopback", "localhost"   #陣列變數

             Set-Variable -name intDriveType -value 3 -option constant  #常量定義 常量:intDriveType 值:3

             foreach ($strComputer in $aryComputers)   #迴圈遍歷陣列物件

             {"Hard drives on: " + $strComputer

              #獲取wmi物件 分類:win32_logicaldisk 電腦名稱:$strComputer 源自陣列物件 電腦過濾條件:drivetype = 3 ,驅動器型別為3

             Get-WmiObject -class win32_logicaldisk -computername $strComputer|  

             Where {$_.drivetype -eq $intDriveType}}

三、陣列

      PowerShell中建立陣列的方式非常簡單:

      $arrName = "LOGONSERVER","HOMEPATH", "APPDATA","HOMEDRIVE"

      和建立變數方式一樣,只是賦值時可以付多個值

      使用陣列方式:$arrName[0] :表示陣列中第一個陣列項的值

       陣列從0開始

PowerShell註釋用法:

       註釋符號:#

       用法如下(一般在.ps1指令碼檔案中使用):

       Get-Process   #此處寫註釋

       sort ws

PowerShell運算子用法:

運算子如下:

1.算術二元運算子:

      +   加、串聯

       -    減

       *    乘

       /    除

       %   模

  2.賦值運算子

         =   +=    -=    *=    /=   %=

  3.邏輯運算子

         ! 不等於

         not  非

         and  且

          or   或

    4.比較運算子(可在運算子前加上 i 或者 c ,以指定是否區分大小寫)

           -eq  等於   -ceq  區分大小寫

           -ne  不等於

           -gt   大於

           -ge  大於等於

            -lt    小於

            -le   小於等於

            -contains  包含 

     用法如下:

            此陣列中是否包含3:           1,2,3,5,3,2 –contains 3

            返回所有等於3的元素:        1,2,3,5,3,2 –eq 3

            返回所有小於3的元素:         1,2,3,5,3,2 –lt 3

            測試 2 是否存在於集合中:   if (1, 3, 5 –contains 2)

    5.呼叫運算子

             &  可用於呼叫指令碼塊或者命令/函式的名稱 

                    用法如下:

                     $a = { Get-Process | Select -First 2}  #獲取處理器資訊排名前二的兩條記錄

                     &$a

              .  可用於方法呼叫

                     用法如下:

                      $a = "這是字串"

                      $a.substring(0,3)

                 ::  用於靜態方法呼叫   

                       用法如下:         

                       [DateTime]::IsLeapYear(2008)

                       結果:True  

                       [DateTime]::Now  #返回當前時間

      6.字串運算子

                +  連線兩個字串

                 *   按指定次數重複字串

                  -f   設定字串格式

                   -replace   替換運算子    用法:"abcd" -replace "bc","TEST"   返回結果:aTESTd

                   -match   正則表示式匹配

                   -like       萬用字元匹配

      7.其他運算子

                    , 陣列建構函式

                     ..  範圍運算子

                     -is  型別鑑別器  用法: $a = 100  $a -is [int]  返回結果:Ture  $a -is [string] 返回結果:False

                     -as   型別轉換器  用法: 1 -as [string]   #將1作為字串處理

                     -band  二進位制與

                     -bor     二進位制或

                     -bnot    二進位制非

       8.運算子優先順序

                       (){} 

                       @$  

                        !  

                        [] 

                         . 

                        &   

                        ++或者--   

                        一元+ -   

                          * / %

                          二元 + -

                          比較運算子

                          -and -or

                            |

                            >>>

                             =

         9.WindowsPowershell命令解析順序

                          別名(alias)

                          函式

                           cmdlet

                            指令碼

                             可執行檔案

                             正常檔案

PowerShell函式用法:

用法一如下:函式中改變變數值並不影響實際值

               $var1=10
               function one{"The Variable is $var1"}
               function two{$var1=20;one}
               one
               two
               one

執行結果:

              The Variable is 10
              The Variable is 20
              The Variable is 10

用法二如下:(函式中變數值的改變要用$Script:var的形式)

                $var1=10
                function one{"The Variable is $var1"}
                function two{$Script:var1=20;one}
                one
                two
                one

執行結果:

               The Variable is 10
               The Variable is 20
               The Variable is 20

PowerShell條件控制的用法:        

一、迴圈類

1.foreach的用法

用法一如下:

            $var=1..6 #定義陣列

foreach($i in $var)
            {
                     $n++
                     Write-Host "$i"
}
            Write-Host "there were $n record"

執行結果:

            1
            2
            3
            4
            5
            6
            there were 6 records

用法二如下:直接獲取管道資料

            $n = 0
            "a","b","c","d" | foreach{
                    $n++
                    Write-Host $_
                    }
            Write-Host "there were $n record"

執行結果:

            a

            b

            c

            d

             there were 4 records

2.while的用法

用法一如下:
            $n = 0
            while($n -le 5)    #當$n小於等於5時進行下面操作
            {
                  write-host $n
                  $n++
            }

執行結果:

            0

            1
            2
            3
            4
            5

3. do...while的用法

用法一如下:
          
  $n = 0
            do
            {
                  write-host $n
                  $n++
            }
            while($n -ne 3)    #當$n<>3時進行迴圈操作

執行結果:

            0

            1
            2

4. do...until的用法

用法一如下:
           
 $n = 0
            do
            {
                  write-host $n
                  $n++
            }
            until($n -gt 3)    #當$n>3時停止操作

執行結果:

           0

           1
           2

           3

二、分支類

1.if用法

   if語法結構如下:

  if(條件1)

              {處理1}

               elseif(條件2)

               {處理2}

               ...elseif 可多次重複

               else

               {處理3}

用法如下:

             Get-Service |foreach{  #foreach{必須放在一起,不可換行放置
                      if($_.status -eq "running"){   #if(){ 必須放在一起,不可換行放置
                                  write-host $_.displayname "("$_status")" -foregroundcolor "green"
                        }
                     else
                     {
                                 write-host $_.displayname "("$_status")" -foregroundcolor "red"
                     }
            }

執行結果:

             Windows Audio Endpoint Builder ( )
             Windows Audio ( )

             ActiveX Installer (AxInstSV) ( )
             BitLocker Drive Encryption Service ( )

             Base Filtering Engine ( )

2.switch用法

   switch語法結構如下:

               switch [-regex | -wildcard | -exact] [-casesensitive](表示式)| -file filename   #表示式可以為陣列,為陣列時順序處理陣列每一項 

 # -file表示從文字獲得輸入,讀取文字每一行,並對其執行switch塊

               {

                     字元1|數字1|變數1|表示式1

                      {處理1}     #此處可加上;break 表示若匹配上則跳出switch語句      

                      字元2|數字2|變數2|表示式2

                      {處理2}

                       ...以上的組合可有多個,不可重複

                       default   #預設處理方式,這個是防止匹配不上時的處理方式,類似錯誤處理。且default語句只可有一個

                        {處理3}

               }

 用法一如下: switch(表示式)

                     $a = 3
                     switch($a)
                     {
                              1
                              {"It's one";break}   #break:表示若匹配跳出swith語句
                              2
                              {"It's two";break}
                              3
                              {"It's three";break}
                               4
                              {"It's four";break}
                               5
                               {"It's five";break}
                               default
                                {"It's unknown";break}
                      }

執行結果:

           It's three

              若 $a = 8  執行結果為:It's unknown

用法二如下:switch -casesensitive (表示式)表示區分大小寫

 $day = "day1"
             switch -casesensitive($day)  # -casesensitive 表示大小寫敏感,即區分大小寫
             {
                    day1
                    {"It's Monday" ;break}
                    day2
                    {"It's Tuesday";break}
                    day3
                    {"It's Wednesday";break}
                    day4
                    {"It's Thursday";break}
                    day5
                    {"It's Friday";break}
                    day6
                    {"It's Saturday";break}
                    day7
                    {"It's Sunday";break}
                    default
                   {"It's unknown";break}
              }

執行結果:It's Monday

                  若定義  $day = "Day1"  執行結果:It's unknown

用法三如下:switch -regex(表示式)表示正則表示式匹配

      $day = "day5"
      switch -regex ($day)
      {
           ^[a-z]+$ 
           {"字母,匹配為:" +$_ ;break}
           ^[\d]+$ 
           {"數字,匹配為:" +$_ ;break}
           ^\w+$ 
           {"字母+數字,匹配為:" +$_ ;break}
           default
           {"什麼都不是" +$_;break}
      }

執行結果:字母+數字,匹配為:day6

                  若 $day = "day" 執行結果為:字母,匹配為:day6

                  若 $day = "1234" 執行結果為:數字,匹配為:1234

                  若 $day = 12 執行結果為:數字,匹配為:123

                  若 $day = "*&^%" 執行結果為:什麼都不是,匹配為:*&^%

用法四如下:switch -regex(表示式)表示正則表示式匹配 表示式可為陣列

       $day = "day5","day6"
       switch -regex ($day)
       {
              ^[a-z]+$ 
              {"字母,匹配為:" +$_ ;}
              ^[\d]+$ 
              {"數字,匹配為:" +$_ ;}
              ^\w+$ 
              {"字母+數字,匹配為:" +$_ ;}
              default
              {"什麼都不是" +$_;}
       }

執行結果:字母+數字,匹配為:day5

                 字母+數字,匹配為:day6

用法五如下:switch -wildcard(表示式)表示萬用字元匹配 

            $day = "day2"
            switch -wildcard ($day)
            {
                 day2 
                 {"day2,匹配為:" + $_;break}
                  day3
                 {"day3,匹配為:" + $_;break}
                 day* 
                 {"萬用字元,匹配為:" + $_;break}
                 default
                 {"什麼都不是:" +$_;break}
            }

執行結果:day2,匹配為:day2

                 若 $day = "day5",執行結果為:萬用字元,匹配為:day5

                 若 $day = "sunshine",執行結果為:什麼都不是:sunshine

三、跳轉類

1.break用法:break語句出現在foreach、for、while、switch等結構中時,break語句將使windows powershell立即退出整個迴圈。

                      在不迴圈的switch結構中,powershell將退出switch程式碼塊。

 用法如下: 

             $var = 0
             while ($var -lt 10)
             {
                    $var += 1
                    if($var -eq 5)
                    {
                          break       #當var=5時,終止while迴圈

                     }
                    write-host $var
              }

執行結果:

              1
              2
              3
              4

2.continue用法:continue語句出現在foreach、for、while等迴圈結構中時,continue語句將使windows powershell立即退出某一次輪迴圈,並繼續下一輪迴圈。

用法如下:

          $var = 0
          while ($var -lt 10)
          {
                $var += 1
                if($var -eq 5)
                {
                        continue       #當var=5時,跳出本輪迴圈,繼續下一輪迴圈
                }
               write-host $var
         }

執行結果:

            1
            2
            3
            4
            6
            7
            8
            9
            10

 PowerShell丟擲異常的Throw用法:

 用法如下:

                   Throw  字串|異常|ErrorRecord

                  如:throw  "danger"

返回結果:danger 及詳細錯誤資訊

PowerShell獲取出錯資訊的用法:

用法如下:
            function one
           {
                 get-process -ea stop  #-ea定義錯誤發生以後該如何繼續執行,意同-ErrorAction
                 get-childitem ada -ErrorAction stop  #此處有錯誤 路徑ada不存在
                 get-process -ErrorAction stop
           }

          one

返回結果:報出錯誤資訊

PowerShell單步除錯的用法:

相關推薦

Windows PowerShell基本語法常用命令

PowerShell常用命令: 一 Get類 1.Get-Command : 得到所有PowerShell命令,獲取有關 cmdlet 以及有關 Windows PowerShell 命令的其他元素的基本資訊。        &nbs

Windows PowerShell 基本語法常用命令

PowerShell常用命令: 一 Get類 1.Get-Command : 得到所有PowerShell命令,獲取有關 cmdlet 以及有關 Windows PowerShell 命令的其他元素的基本資訊。                            

Linux下KVM虛擬機器基本管理常用命令

  說明:可能有重複 一、KVM的基本管理 1、檢視KVM虛擬機器配置檔案 #Kvm虛擬機器預設配置檔案位置 [[email protected] qemu]# pwd /etc/libvirt/qemu [[email protected] qe

必須要會的Git基本使用常用命令操作

之前一直用的svn,後來換了之後才發現git的強大功能,是svn不能比的。缺點就是可能上手比較難一點,剛開始自己研究了兩天才摸索出來一些基本使用方法。 最近做專案需要建庫等等,都用到了git,隨著越來越多的使用,也越來有越多的認識。 一開始都是別人建好遠端庫,克隆下來就行了。 下面

R語言的基礎語法常用命令

R其實對於資料分析來說只是工具而已,所以剛開始不需要學習多麼深多麼細,只需要能夠滿足當前需求就行,之後的在實踐中慢慢學習。 畢竟想要把R學精並不是容易的事情。正確的做法就是邊做邊學,不會就google翻文件。 本片主要是R的基礎語法及常用的命令操作 賦值 R賦值採用<-或者-&

Windows PowerShell開啟方法與常用命令

    Windows PowerShell 是一種命令列外殼程式和指令碼環境,使命令列使用者和指令碼編寫者可以利用 .NET Framework 的強大功能。本文來介紹一下它的開啟方法和常用的命令啟動

SHELL基本知識常用命令

一、shell基本知識 1. 什麼是shell shell shell也是作業系統中的一個軟體,它包在 linux 核心的外面,為使用者和核心之間的互動提供了一個介面,系統中的命令用 shell 去解釋 shell 接收系統迴應的輸出並

redis學習筆記01 — 基本介紹、安裝配置常用命令

redis——NoSQL的一種 為了解決高併發、高可用、高擴充套件、大資料儲存等一系列問題而產生的資料庫解決方案,就是NoSQL NoSQL,非關係型資料庫,全名:Not Only Sql,它不能代替關係型資料庫,只能作為關係型資料庫的一個良好補充。 redis 簡介 是使用

windows下docker的安裝常用命令學習

兩個 inf tar 分享圖片 ear inux bash 登錄 clas docker search 鏡像名   本文主要介紹Docker在Windows下的安裝。關於Docker的介紹和文檔在其官網中可以找到:http://www.docker.com

Git使用:安裝,使用常用命令整理

reset short 配置文件 res 命名 nbsp class 名詞 如果 對於程序猿而言,git是最常接觸的工具之一,因此需要熟練快速掌握其技巧。 git安裝: windwos: 【原創】Windows平臺下Git的安裝與配置 Ubuntu:git與github在

DAY-8 Linux基礎常用命令(4)

打開 ip地址 grep 軟件包 linux基礎 tro mks 官網 vim 一、制作swap分區(命令) swapon –s 查看當前激活狀態的swap分區 free –m 以m為單位查看分區 swapoff關閉分區 swapon打開分區 添加swap分區——mks

DAY-9 Linux基礎常用命令(5)

mod conf 自己的路 linux操作 解包 二進制安裝 netstat iptables usr 一、Samba(類似共享網盤) 1、功能:Linux操作系統給win用戶共享文件用 2、如何部署 》》準備環境:iptables –F(清除防火墻)、systemctl

lvm基本知識與常用命令

pv vg lv linux lvm lvm基礎知識: lvm是Logical Volume Manager(邏輯卷管理)的縮寫,可以理解為一種硬盤分區管理工具,有以下幾個重要的基礎術語:物理卷(Pyhsical Volume,PV):是由系統的基礎存儲設備,如/dev/sda,/d

js基本語法註意事項

name tab 設置 刪除元素 ext ack rop 捕獲 ons 正則表達式:var x=/^a{2,8}$/;alert(x.test("aaa"));正則表達式一般用於表單驗證。<form onsubmit="return checkForm()">

【安全牛學習筆記】tcpdump簡介常用命令實例

信息安全 tcpdump security+ tcpdump簡介 tcpdump 是一個運行在命令行下的嗅探工具。它允許用戶攔截和顯示發送或收到過網絡連接到該 計算機的TCP/IP和其他數據包。tcpdump 是一個在BSD許可證下發布的自由軟件。

Docker使用技巧常用命令

span server 登錄用戶 serve java 本地 oot ps 命令 用戶 安裝docker 檢查curl包是否安裝? which curl 如果curl沒有安裝的話,則先更新apt源,並安裝curl,如下: apt-get updateapt-get

redis配置文件全解常用命令

redisredis配置文件全解及常用命令1.基本配置daemonize no 是否以後臺進程啟動databases 16 創建database的數量(默認選中的是database 0)save 900 1 #刷新快照到硬盤中,必須滿足兩者要求才會觸發,即900秒之後至少1個關鍵字發生變化。save 3

css基本語法頁面引用

式表 pre class 創建 pos width 樣式 tex type css基本語法 css的定義方法是: 選擇器 { 屬性:值; 屬性:值; 屬性:值;} 選擇器是將樣式和頁面元素關聯起來的名稱,屬性是希望設置的樣式屬性每個屬性有一個或多個值。代碼示例: d

Linux操作系統常用命令

命令1. 常用命令:1.1 ls命令:1.2 cd 命令: 1.3 cal命令 cal是calendar的意思1.4 echo 命令echo -necho -e "The year is 2018. \nToday is 8. "2. 命令類型:3. date:時間管理:Linux:

MySQL導入SQL文件常用命令

執行sql 密碼 導出導入 describe 改密 table 地址 from 多條 在MySQL Qurey Brower中直接導入*.sql腳本,是不能一次執行多條sql命令的,在mysql中執行sql文件的命令: mysql> source d:/myp