2015-10-16 117 views
-2

我正在構建一個網站,其中包含需要PHP腳本和JavaScript才能正確組織文件的多個文件夾。我需要將這兩個文件放在一個目錄和該文件夾中的所有子目錄中。我試圖做這個命令如何將文件複製到文件夾以及該文件夾中的所有目錄

for /d %a in (c:\mp3filestructure) do copy /y c:\sortingscript\index.php %a\ 

- 在代碼外部的容器。我一直從admin-cmd執行此操作,並且它只複製到一個文件夾!我迷路了......

+1

這不是PowerShell。你還有什麼特別想做什麼,什麼不工作?感謝您包括您所做的嘗試。 – Matt

+0

我正在使用cmd-我在c:\ mp3filestructure中創建了一個包含數百個目錄和子目錄的服務器樹副本。然後我創建了一個文件夾c:\ sortscript,它具有我需要的所有目錄中的兩個文件(index.php和sorttable.js),現在它可以用於文件夾一級下,名稱中沒有空格,但子目錄保留(c:\ mp3filestructure \「*」)do copy/y C:\ sortscript \ index.php%a \ – learningallican

+0

我加了這個命令並且稍微調整了一下/ d%a電源外殼標籤,以防萬一我使用錯誤的命令行。 – learningallican

回答

1

在PowerShell中它會是這個樣子:

$file1 = "PATH TO PHP SCRIPT" 
$file2 = "PATH TO JAVASCRIPT" 

foreach($directory in (get-childitem "PATH TO ROOT DIRECTORY YOU WANT TO COPY" -recurse| ?{$_.PSIsContainer})) 
{ 
    copy-item $file1,$file2 $directory 
} 

(get-childitem "PATH TO ROOT DIRECTORY YOU WANT TO COPY" -recurse | ?{$_.PSIsContainer})線將讓你在搜索根目錄下的所有目錄中的-recurse開關說要經過整個目錄。當我們說{$_.PSIsContainer}我們說只返回目錄的對象,而不是文件。

例子:

$file1 = "C:\phpScript.txt" 
$file2 = "C:\javaScript.txt" 

foreach($directory in (get-childitem "C:\CopyToDirectory" -recurse | ?{$_.PSIsContainer})) 
{ 
    copy-item $file1,$file2 $directory 
} 

或者,如果你想要做一個線,就成了這個樣子:

get-childitem C:\CopyToDirectory -recurse | ?{$_.PSIsContainer} | %{copy-item C:\phpScript.txt,C:\javaScript.txt $_} 

下面是命令中使用

Get-ChildItem
Copy-Item
For-Each
A similar question

+0

你真的不應該使用別名在代碼示例中,恕我直言,對於不熟悉PS的人來說,代碼非常難以理解。 – bluuf

+0

你是什麼意思? – learningallican

+0

GCI是Get-ChildItem的別名,換句話說,它是調用相同命令的另一種方式。我更新了沒有別名的帖子。 – AutomatedOrder