2014-01-22 27 views
0

我在腳本中遇到了一些麻煩。我試圖將坐在一個目錄中的所有文件移動到不同的目錄,並引用文件路徑的數組(參見下文)。由於某些原因,它不起作用 - 當我運行命令時,它默默無聞。在移動項目命令中引用Powershell數組

以下是源目錄的內容:

  • folderA
  • FolderB中
    • subFileA.txt
  • fileA.txt
  • fileB.txt

這裏是我的命令:

mv .\$PRODUCTS_OLD_NAMES[0]\* .\$PRODUCTS_NEW_NAMES[0]\newfolder 

當我運行它沒有任何反應,並不會引發錯誤。我究竟做錯了什麼?


編輯CB's答案完美工作,是解決方案。使用$()

+0

我們需要知道$ PRODUCTS_OLD_NAMES和$ PRODUCTS_NEW_NAMES來自何處。你能發佈更多的代碼嗎? – Trondh

回答

1

嘗試(假設$PRODUCTS_OLD_NAMES$PRODUCTS_NEW_NAMES是有效的路徑!) - >變量擴展語法

mv .\$($PRODUCTS_OLD_NAMES[0])\* .\$($PRODUCTS_NEW_NAMES[0])\newfolder 
+0

當我按照建議修改複製行並運行它時,結果如下: 'PRODUCTS_OLD_NAMES [0]:術語'PRODUCTS_OLD_NAMES [0]'不被識別爲cmdlet的名稱,函數...' 但是,當我運行'echo $ PRODUCTS_OLD_NAMES [0]'我得到預期的輸出。 –

+0

**更新**我錯過了在表達式中雙重使用'$'。當我完全按照您發佈的內容複製您的線條時,它完美運作。謝謝! –

+0

@ user1347428很高興幫助! –

0

如建議通過CB,這是解決方案:

mv .\$($PRODUCTS_OLD_NAMES[0])\* .\$($PRODUCTS_NEW_NAMES[0])\newfolder

注意圓括號將數組引用與外部的$符號包裝在一起。