Назад | Перейти на главную страницу

Как искать файлы с тильдой в имени в Windows Server 2008 R2?

У меня вопрос о поиске файлов в Windows Server 2008 R2. Мы автоматизируем Excel (не спрашивайте), который в случае сбоя может оставить временные файлы с расширением .XLS ~

Если я выполняю ручной поиск * .xls ~, оказывается, что Server 2008 обрабатывает тильду как подстановочный знак и возвращает ВСЕ файлы * .xls, что, конечно, не то, что мне нужно.

Кто-нибудь может сказать мне, как я могу выполнить этот поиск, чтобы он вернул правильные файлы? Могу ли я использовать escape-символ? Кто-то сказал мне использовать двойные кавычки и попробовать поискать *. "Xls ~", но это не сработало.

Символ "~" - это оператор в Расширенный синтаксис запроса используется Windows Search.

Само по себе это означает, что поиск содержит подстановочные знаки, как в System.FileName:~"Mic?osoft W*d" соответствие имени файла Microsoft Word.

Чтобы буквально сопоставить имя файла "* .xls ~", вы должны искать System.Filename:~"*.xls~"

Мой старый, менее информированный ответ, который я сохраняю только из-за новизны подключения к буферу обмена, это:

Я бы открыл командную строку и сделал dir /b /s/a x:\*.xls~ (подставив соответствующую букву диска). Если вы хотите, чтобы список в буфере обмена добавил | clip к команде. Вы не получите свои файлы в красивом окне проводника, но вы получите список.

Если вы хотите сделать это, не выходя из графического интерфейса, просто откройте окно «Выполнить» и введите cmd /c dir /s /a /b x:\*.xls~ | clip и после cmd.exe окно закроется, ваши результаты будут в буфере обмена.

Предполагая, что вы говорите о Windows Search, попробуйте ~*".xls~" Это также помогает с круглыми скобками, например ~*"(1).xls"

~ не является подстановочным знаком в PowerShell, поэтому:

dir startingPath -recurse -filter '*.xls~'