列出 Windows Server 2003 中的文件夹和子文件夹中的所有文件并将其导出到记事本

列出 Windows Server 2003 中的文件夹和子文件夹中的所有文件并将其导出到记事本

我有一台服务器,其中一个驱动器上有超过 600 GB 的数据。

我需要列出文件夹和子文件夹中的所有文件并将其导出到记事本或 Excel。

答案1

在 PowerShell 中快速而粗略地执行以下操作:

C:\> dir -recurse | out-file X:\pathtofile.txt

这将输出类似这样的内容:

    Directory: E:\Kodak\3500\PDFs\index\parts


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---        8/10/2002  4:18 a.m.      40960 00000005.ddd
-a---       26/09/2002  7:55 a.m.     446464 00000005.did
-a---        8/10/2002  4:18 a.m.          0 00000005.mrg
-a---        8/10/2002  4:18 a.m.      17408 00000006.ddd
-a---        5/10/2002  3:19 a.m.     221184 00000006.did
-a---        8/10/2002  4:18 a.m.          0 00000006.mrg
-a---        8/10/2002  4:18 a.m.      17408 00000007.ddd
-a---        8/10/2002  3:48 a.m.     102400 00000007.did
-a---        8/10/2002  4:18 a.m.          0 00000007.mrg
-a---        8/10/2002  4:18 a.m.      16384 00000008.ddd
-a---        8/10/2002  4:18 a.m.      32768 00000008.did
-a---        8/10/2002  4:18 a.m.          0 00000008.mrg
-a---        8/10/2002  4:20 a.m.      52224 00000009.ddd
-a---        8/10/2002  4:18 a.m.     641024 00000009.did

如果在之后但在之前的某个地方添加-name命令,则会得到以下内容:dir|

PDFs\index\parts\00000005.ddd
PDFs\index\parts\00000005.did
PDFs\index\parts\00000005.mrg
PDFs\index\parts\00000006.ddd
PDFs\index\parts\00000006.did
PDFs\index\parts\00000006.mrg
PDFs\index\parts\00000007.ddd
PDFs\index\parts\00000007.did
PDFs\index\parts\00000007.mrg
PDFs\index\parts\00000008.ddd
PDFs\index\parts\00000008.did
PDFs\index\parts\00000008.mrg
PDFs\index\parts\00000009.ddd
PDFs\index\parts\00000009.did

您可能还想在-force后面 包含一个-recurse,因为这也会显示隐藏文件和系统文件。

请注意,此文件很大。我对工作电脑的 C:\ 运行此程序,生成了一个 45MB 的 txt 文件。这不包括我的用户帐户无权访问的所有文件夹。

答案2

我需要列出文件夹和子文件夹中的所有文件并导出到记事本或 Excel。

从命令行:

dir /a /s /b > filelist.txt
  • /a显示所有文件

  • /s包括所有子文件夹。

  • /b裸格式(无标题、文件大小或摘要)

filelist.txtnotepad++或中打开excel


进一步阅读

答案3

您可以使用此 PowerShell 脚本列出所有文件夹子文件夹和文件并将其写入 csv 文件。

$rootPath = "D:\data"
$getFilesfromRootDirectory = Get-ChildItem -Path $rootPath | %{$_.FullName}

$csvFilename = "D:\Output\outputs.csv"   #Output will be written to csv file

function get_files_under_folders($value)
{
  $getFiles = Get-ChildItem -Path $value | %{$_.FullName}

    foreach ($value in $getFiles)
    {

        if(checkFileorFolder($value))
        {    
             echo "$value" >> $csvFilename
             Write-Host $value
             get_files_under_folders($value)         
        }
        else
        {        
            Write-Host $value 
            echo "$value" >> $csvFilename
        }
    }     
}

function checkFileorFolder($value)
{
   $CheckFile = Test-Path -Path $value -PathType Container 
  return $CheckFile
}

foreach($value in $getFilesfromRootDirectory)
{


 if(checkFileorFolder($value))
 {        
     Write-Host $value
     get_files_under_folders($value)         
 }
 else
 {        
    Write-Host $value 
    echo "$value" >> $csvFilename
 }
}

答案4

DavidPostill 的回答非常完美,但我想补充一些内容使其更容易。

将其复制到记事本:

dir /a /s /b > 文件列表.txt

将其保存到要收集的带有 .bat 扩展名的文件夹中,即文件 > 另存为 > 所有文件 > WHATEVER.bat

您可以将其保存在一个地方,然后将其复制/粘贴到需要的文件夹中

/a 显示所有文件

/s 包括所有子文件夹。

/b 裸格式(无标题、文件大小或摘要)

打开文件列表.txt

  • 有一个问题与此相关。如何排除具有特定扩展名的文件?

相关内容