如何将文件复制到该文件夹​​和该文件夹中的所有目录

时间:2015-10-16 15:38:52

标签: powershell for-loop cmd

我正在构建一个包含多个文件夹的网站,这些文件夹需要PHP脚本和JavaScript才能正确组织文件。我需要将这两个文件放在一个目录和该文件夹中的所有子目录中。我试过这个命令

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

- 删除代码外部的容器。我一直在从admin-cmd做这个,它只复制到一个文件夹!我迷路了...

1 个答案:

答案 0 :(得分: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