2015-10-16 46 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

相关问题