我有一个关于在 Windows Server 2008 R2 中搜索文件的问题。我们正在自动化 Excel(不要问),当它失败时会留下扩展名为 .XLS 的临时文件~
如果我手动搜索 *.xls~,Server 2008 似乎将波浪号视为通配符并返回所有 *.xls 文件,这当然不是我想要的。
有人能告诉我如何进行搜索才能找到正确的文件吗?有没有转义字符可以使用?有人告诉我使用双引号并尝试搜索 *."xls~",但不起作用。
答案1
“~”字符是高级查询语法由 Windows Search 使用。
它本身表示搜索包含通配符,例如System.FileName:~"Mic?osoft W*d"
匹配文件名Microsoft Word
。
要完全匹配“*.xls~”文件名,您需要搜索System.Filename:~"*.xls~"
我的旧的,不太了解的答案,我保留它只是因为管道传输到剪贴板的新颖性,它是:
我会打开命令提示符并执行dir /b /s/a x:\*.xls~
(替换相应的驱动器号)。如果您想要剪贴板上的列表,请| clip
在命令中添加。您不会在漂亮的资源管理器视图中看到文件,但会得到一个列表。
如果您想在不离开 GUI 的情况下执行此操作,只需打开“运行”框并输入cmd /c dir /s /a /b x:\*.xls~ | clip
,cmd.exe
窗口关闭后,您的结果就会出现在剪贴板上。
答案2
假设您正在谈论 Windows Search,请尝试~*".xls~"
这也有助于使用括号,例如~*"(1).xls"
答案3
~
在 PowerShell 中不是通配符,因此:
dir startingPath -recurse -filter '*.xls~'