【问题标题】:How to get a list of files from a folder如何从文件夹中获取文件列表
【发布时间】:2014-01-21 08:33:13
【问题描述】:

我真的需要一些帮助。我已经在这里和网络上搜索了这些主题,并且更接近我需要的内容,但不是全部

我需要一个文件夹中所有文件和子文件夹的列表

我在如何使用命令提示符从目录中获取文件和文件夹方面找到了很多帮助,但在我的情况下,目录很大,我宁愿只指定我需要的文件夹,然后获取其中存在的文件该文件夹(以及子文件夹及其文件)。另请注意,我不是很技术,只能使用命令提示符管理基本查询

我需要:

我可以导入 excel 的列表,其中包含 - 文件名、文件路径(如果可能)、修改日期、作者、文件类型

我需要的文件都存在于 M:\Sales & Marketing\Sales\Sales Tools 的子文件夹中,还有一些我需要的文件存在于 M:\Sales & Marketing\Sales\Tenders\Tender Docs 中

我想将它们从共享文件夹复制到我的本地目录,但这需要 2 多个小时才能完成

如果您能提供任何帮助,我将不胜感激。我尝试按照 dir /s /b >> filelist.txt 更改所有示例以使用文件夹和路径,但没有运气

非常感谢提前

【问题讨论】:

  • 您好 Foxidrive,非常感谢您提供的信息,它会很棒。但是,我在文件中收到一条错误消息,说脚本的执行被禁用。如果没有其他简单的方法,我会看看 IT 部门是否可以启用脚本

标签: file cmd directory


【解决方案1】:

将所有这些保存到一个名为 say MyInfo.bat 的批处理文件中,然后启动它。在同一个文件夹中,您应该会找到 file.csv,其中包含一些可能对您有所帮助的信息。它使用 Powershell 来获取信息,但可以作为批处理文件启动。

在您提到Author 的地方,这将返回文件的ownerfile type 由文件名中的扩展名显示。

@echo off
more +7 "%~f0" >"%temp%\a.ps1"
powershell "%temp%\a.ps1"  >"file.csv"
del "%temp%\a.ps1"
goto :EOF



$files = Get-ChildItem 'M:\Sales & Marketing\Sales\Sales Tools\*' -Recurse
foreach ($file in $files){
$acl = $file | get-acl | select path,owner
$result = "`"$($file.name.ToString())`",`"$($file.directoryname.ToString())`",`"$($acl.owner.ToString())`",$($file.lastwritetime.ToString("yyyy-MM-dd hh:mm:ss"))"
write-output $result
}

$files = Get-ChildItem 'M:\Sales & Marketing\Sales\Tenders\Tender Docs\*' -Recurse
foreach ($file in $files){
$acl = $file | get-acl | select path,owner
$result = "`"$($file.name.ToString())`",`"$($file.directoryname.ToString())`",`"$($acl.owner.ToString())`",$($file.lastwritetime.ToString("yyyy-MM-dd hh:mm:ss"))"
write-output $result
}

【讨论】:

  • 您好 Foxidrive,非常感谢您提供的信息,它会很棒。但是,我在文件中收到一条错误消息,说脚本的执行被禁用。如果没有其他简单的方法,我会看看 IT 部门是否可以启用脚本
  • 你可以右键单击批处理文件并以管理员身份运行吗?还是您的帐户是受限用户并且您没有管理员密码或访问权限?
  • 也许你必须Set-ExecutionPolicy
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-15
  • 1970-01-01
  • 2011-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-26
相关资源
最近更新 更多