制作PowerShell';让我们开始更紧凑的对话

制作PowerShell';让我们开始更紧凑的对话,powershell,cmd,Powershell,Cmd,我使用PowerShell在目录中导航,并在到达符合特定条件的文件时记录当前文件路径。在我的示例中,它是一个以2开头的文件,后面有两个数字: Start-Transcript -path C:\test.txt Get-ChildItem -recurse | Where-Object {$_.Name -match "2\d\d"} Stop-Transcript 在切换到PowerShell之前,我只是使用命令行 dir*2???*.doc/b/s/A:-D>C:\test.txt 它收集

我使用PowerShell在目录中导航,并在到达符合特定条件的文件时记录当前文件路径。在我的示例中,它是一个以2开头的文件,后面有两个数字:

Start-Transcript -path C:\test.txt
Get-ChildItem -recurse | Where-Object {$_.Name -match "2\d\d"}
Stop-Transcript
在切换到PowerShell之前,我只是使用命令行

dir*2???*.doc/b/s/A:-D>C:\test.txt

它收集了一堆我不想要的东西。但是,此命令的好处是,我的文本文件很紧凑,每个文件的整个文件路径都在一行上:

C:\folder1\234.doc
C:\folder1\folder2\235.doc
Powershell中的转录功能要大得多:

Start time: 20170512141758
...
**********************
Transcript started, output file is C:\test.txt


    Directory: C:\folder1


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        12-May-17     14:07              0 234.doc


    Directory: C:\folder1\folder2


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        12-May-17     14:05              0 235.doc
**********************
Windows PowerShell transcript end
End time: 20170512141758
**********************

如何使我的PowerShell成绩单与命令行成绩单一样紧凑?

将您直接输出到
输出文件
,而不是使用
开始成绩单

Get-ChildItem -Recurse | Where-Object {$_.Name -match "2\d\d"} |Select -Expand FullName |Out-File C:\test.txt

Where Object
之后的
Select
(别名为
Select Object
)命令确保我们只在输出文件中获取完整的文件路径,而不是使用
Start Transcript

Get-ChildItem -Recurse | Where-Object {$_.Name -match "2\d\d"} |Select -Expand FullName |Out-File C:\test.txt

Where Object
之后的
Select
(别名为
Select Object
)命令确保我们只在输出文件中获得完整的文件路径,感谢您的快速响应!但是-Expand参数做什么呢?获取帮助选择对象-FullWow,感谢您的快速响应!但是-Expand参数做什么呢?获取帮助选择对象-Full