none
比對相同檔名並搬移到新資料夾

    問題

  • 各位大大好

    目前有兩個資料夾A和B,裡面各放doc、txt檔,但檔名有些都相同,請問我如何去比對有相同檔名的檔案,並把A資料夾中有相同相同檔名的檔案搬到新資夾中?

    如下:

    A   d:\doc\11.doc、12.doc、13.doc、15.doc、17.doc、20.doc

    B   D\txt\11.txt、12.txt、17.txt

    -->d:\newdoc\11.doc、12.doc、17.doc

     

    2010年8月5日 上午 07:39

解答

  • $folderA = "D:\doc\"
    $folderB = "D:\txt\"
    $folderNew = "D:\newdoc\"
    
    foreach ($fileA in Get-ChildItem $folderA)
    {
      # 此法有缺點,萬一檔名中有數個 .doc 都會被換成 .txt
      $fileB = $folderB + $fileA.Name.ToLower().Replace(".doc", ".txt")
    
      If (Test-Path $fileB) {
        "搬移檔案: $fileA"
        $fileA.MoveTo($folderNew + $fileA.Name)
      }
    }
    


    ☞ 這裡是「免費的討論區」付費支援服務請造訪 此處享受尊榮服務
    如果回覆對您有幫助,請記得按下標示為解答」
    在本討論區使用正體中文(即繁體中文),是對參與的朋友的一種尊重,因此請用本討論區的語言:正體中文。
    • 已標示為解答 jakoman 2010年8月16日 上午 09:33
    2010年8月15日 上午 04:40

所有回覆

  • 請問您的問題描述是不是有點小問題,因為您說:「資料夾A和B,裡面各放doc、txt檔,但檔名有些都相同」,
    但例子卻是主檔名相同附檔名不同



    ☞ 這裡是「免費的討論區」付費支援服務請造訪 此處享受尊榮服務
    如果回覆對您有幫助,請記得按下標示為解答」
    在本討論區使用正體中文(即繁體中文),是對參與的朋友的一種尊重,因此請用本討論區的語言:正體中文。
    2010年8月11日 下午 03:59
  • 補充:

    1. 檔名有些相同:是指主檔名,B資料夾中的主檔名會在A資料夾中出現,但A資料夾裡有些主檔名並不一定會在B資料夾中出現
    2. A、B資料夾的副檔名是不一樣的。
    PS:感謝Alex大大的提醒

    2010年8月12日 上午 03:32
  • $folderA = "D:\doc\"
    $folderB = "D:\txt\"
    $folderNew = "D:\newdoc\"
    
    foreach ($fileA in Get-ChildItem $folderA)
    {
      # 此法有缺點,萬一檔名中有數個 .doc 都會被換成 .txt
      $fileB = $folderB + $fileA.Name.ToLower().Replace(".doc", ".txt")
    
      If (Test-Path $fileB) {
        "搬移檔案: $fileA"
        $fileA.MoveTo($folderNew + $fileA.Name)
      }
    }
    


    ☞ 這裡是「免費的討論區」付費支援服務請造訪 此處享受尊榮服務
    如果回覆對您有幫助,請記得按下標示為解答」
    在本討論區使用正體中文(即繁體中文),是對參與的朋友的一種尊重,因此請用本討論區的語言:正體中文。
    • 已標示為解答 jakoman 2010年8月16日 上午 09:33
    2010年8月15日 上午 04:40