У меня вопрос о поиске файлов в 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~'