2014-11-06 45 views
0

我想文件复制和Raname文件在PowerShell中

base.txt

复制到其他文件夹和我想他的名字更改为文件夹名称。

cd c:\Program\Levels 
copy-item *.txt c:\Books -force -recurse 
Get-ChildItem C:\Books -Filter *.txt -Recurse | Rename-Item -NewName { $_.Directory.Name} 

所以他复制* .TXT文件夹“图书”,文件重命名为“books.txt”但是,他并没有将文件复制子文件夹内的“图书”

我想它在“书籍”中复制子文件夹的.txt文件,并将.txt文件重命名为文件夹名称。

观测值:.txt文件是唯一

回答

0

所以文件base.txt这大概是某种形式的模板将被复制到C:\Books每个子文件夹?我想我可以理解你的逻辑方法,但我提供这个解决方案。

$templateFile = "C:\temp\base.txt" 
Get-ChildItem "C:\Books" | Where-Object {$_.PSIsContainer} |ForEach-Object{ 
    $newName = "{0}\{1}.txt" -f $_.FullName, $_.Name 
    Copy-Item -Path $templateFile -Destination $newName 
} 

收集“C:\书”的每个子目录,并在每个这些目录的文件base.txt复制到其新位置上的名字是父文件夹的名称。

+0

我不能......指责错误。 – Jones 2014-11-06 20:36:44

+0

@Jones为了让我帮助你,你需要更具体。什么是你得到确切的错误。 – Matt 2014-11-06 20:44:16

+0

Hummm ...我认为“{0} \ {1} .txt”..他正在阅读这部分作为文本 – Jones 2014-11-06 23:14:42