我的硬盘驱动器上有一些文件没有任何扩展名。手动查找它们非常困难,我真的不喜欢这个事实,因为我需要尽快更换鼠标,因为通过不断点击和滚动来查找这些文件对硬件造成的损害虽然不大,但却非常明显,因为它们是单个文件夹中数千个文件中的几百个。
这里是否有人知道cmd
或PowerShell
命令,或者某些 Windows 资源管理器搜索高级查询语法来帮助简化此任务?
答案1
使用 Windows 查找没有文件扩展名的文件
Windows 资源管理器 - 高级查询语法
按照宠物食品以下是一些文件资源管理器高级查询语法方法开始,但请继续阅读以了解等效方法命令行和批处理脚本这项任务的方法。
递归搜索
kind:= -folder type:= -[] extension:= []
非递归
只需选择“当前文件夹“通过 GUI 选项”搜索“ 标签
或者
kind:= -folder type:= -[] extension:= [] folder:"C:\folder\path"
您可以使用对于/f循环迭代输出目录/B
带有和参数的命令/A-D
,然后使用一些条件如果逻辑是仅使用替换来输出指定目录中的迭代文件而不使用任何扩展名的文件。
命令行
笔记: 这假设您在命令行上所在的目录是您需要搜索的目录,以显示没有扩展名的文件。
FOR /F "TOKENS=*" %A IN ('dir /B * /A-D') DO IF /I [%~nxA]==[%~nA] ECHO %~A
批处理脚本
笔记: 这是一个批处理脚本,您将值设置SET Src=
为需要搜索的目录以显示没有扩展名的文件。
@ECHO ON
SET Src=C:\folder\path
FOR /F "TOKENS=*" %%A IN ('DIR /B "%Src%\*" /A-D') DO IF /I [%%~nxA]==[%%~nA] ECHO %%~A
PAUSE
EXIT
更多资源
答案2
对于 PowerShell 解决方案:
Get-ChildItem -Path $Path -Recurse -File -Filter '*.'
或者:
Get-ChildItem -Path $Path -Recurse -File | Where-Object Extension -eq ''
请注意,该-File
参数需要 PowerShell v3+。
答案3
在命令提示符中,只需使用*.
:
C:\目录\名称> 目录 2018 年 8 月 24 日凌晨 3:33。 2018 年 8 月 24 日 上午 3:33 .. 2018 年 8 月 24 日 上午 3:33 16 2018 年 8 月 24 日 上午 3:33 18 bc 2018 年 8 月 24 日 上午 3:33 20 绝对 3 个文件 54 字节 C:\目录\名称> 目录 *。 2018 年 8 月 24 日凌晨 3:33。 2018 年 8 月 24 日 上午 3:33 .. 2018 年 8 月 24 日 上午 3:33 16 1 个文件 16 字节 C:\目录\名称>
请记住,Windows 命令提示符不是 Unix。在 Unix 文件名中,点 (.
) 只是一个普通字符(除了以点开头的文件名是隐藏的)。在 Unix 中,*e*
表示所有包含 的文件名e
,*.*
表示所有包含 的文件名(明确地)包含.
。
命令提示符的规则比较复杂。
*
表示所有文件名(即使带有扩展名)。也*.*
表示所有文件名(即使不包含.
)。但*.
指的是所有没有扩展名的文件名。
答案4
ls | ? {$_.Extension -eq ''}
这使用了最大限度的简写。但实际上它与 @BaconBits 的代码相同。我更喜欢简写。对于初学者来说,它更难阅读,但更富有表现力和简洁