2014-10-30 1865 views
0

我有一个包含名为Bruce.txt的文件的目录。我需要将文件名复制到平面文件。我尝试使用copy-item命令,但它复制的内容不是名称。使用PowerShell获取目录中的文件名

是否有命令将Bruce.txt(名称不是内容)复制到平面文件?所以完成后会有一个名为process.txt的文件,其内容将是Bruce.txt。我试过用

Copy-Item -Path "C:\Users\Bruce\deploy\*.txt" -Destination "C:\Users\Bruce\process.txt"

部署内部是一个名为Bruce.txt的文本文件,其内容为select count() from EMP_NR

我需要Bruce.txt复制到process.txt不是SELECT COUNT()等

对于shell脚本我用ls命令和它的作品精彩我有什么可以使用PowerShell中的名字吗?

回答

3

您需要使用Get-ChildItem cmdlet。

Get-ChildItem C:\Users\Bruce\deploy\*.txt | Select-Object -ExpandProperty Name | Out-File C:\Users\Bruce\process.txt -Force -Append 

然而,当你使用PowerShell中,ls实际上你在这里工作,正如gcidir因为他们都别名Get-ChildItem

> get-alias | ? {$_.DisplayName -ilike "*get-childitem*" } 

CommandType  Name 
-----------  ---- 
Alias   dir -> Get-ChildItem 
Alias   gci -> Get-ChildItem 
Alias   ls -> Get-ChildItem 

你也可以如果您愿意,可以使用>>>而不是管道Out-File

由于Get-Childitem cmdlet返回对象列表,因此您还需要选择要从对象中提取哪些信息。如果您在包含某些内容的目录中执行ls,则会看到内容格式化为表格。

通过使用Select-Object cmdlet,可以提取要写入文件的对象属性,在本例中为Name属性。

相关问题