如何修改PowerShell脚本获取仅Excel文件及其修改日期列表
修改批处理以仅获取Excel文件列表
你只需要在PowerShell命令里添加Excel文件的扩展名筛选即可,下面是两种可行的修改方案:
方案1:使用-Include参数直接筛选(更简洁)
直接在Get-ChildItem(缩写GCI)里指定要包含的Excel扩展名,同时用-File参数替代原来的非文件夹判断,简化命令:
@Powershell -NoP -C "GCI \"H:\Molding\Molding Parameters\" -File -Recurse -Include *.xlsx,*.xls,*.xlsm,*.xlsb|Select FullName,LastwriteTime|Export-csv -NoT \"C:\MoldPara\Bhavesh.csv\""
-File:只遍历文件,自动排除文件夹,省去了?{!$_.PSIsContainer}的判断-Include *.xlsx,*.xls,*.xlsm,*.xlsb:指定只包含常见的Excel格式文件,你可以根据需要增减扩展名
方案2:在Where-Object里添加扩展名判断(兼容旧版PowerShell)
如果你的PowerShell版本较旧,-Include参数和-File参数可能不兼容,就用这种方式在筛选条件里加上扩展名判断:
@Powershell -NoP -C "GCI $(GCI \"H:\Molding\Molding Parameters\"|?{$_.PSIsContainer}|%%{$_.FullName}) -R|?{!$_.PSIsContainer -and ($_.Extension -in '.xlsx','.xls','.xlsm','.xlsb')}|Select FullName,LastwriteTime|Export-csv -NoT \"C:\MoldPara\Bhavesh.csv\""
这里只是在原来的?{!$_.PSIsContainer}后面加上了-and ($_.Extension -in '.xlsx','.xls','.xlsm','.xlsb'),表示同时满足「是文件」和「扩展名属于指定Excel格式」两个条件。
内容的提问来源于stack exchange,提问作者Bhavesh Sudani
相关产品推荐
相关产品推荐

