Как искать файлы с тильдой в имени в Windows Server 2008 R2?
У меня есть вопрос о поиске файлов в Windows Server 2008 R2. Мы автоматизируем Excel (не спрашивайте), который при сбое может оставить временные файлы с расширением.XLS~
Если я выполняю поиск *.xls~ вручную, то оказывается, что Server 2008 обрабатывает тильду как символ подстановки и возвращает ВСЕ файлы *.xls, что, конечно, не то, что я хочу.
Может кто-нибудь сказать мне, как я могу сделать этот поиск, чтобы он вернул правильные файлы? Могу ли я использовать escape-символ? Кто-то сказал мне использовать двойные кавычки и попробовать поискать *."Xls~", но это не работает.
3 ответа
Символ "~" является оператором в расширенном синтаксисе запроса, используемом поиском Windows.
Само по себе это указывает на то, что поиск содержит символы подстановки, как в System.FileName:~"Mic?osoft W*d"
соответствие имени файла Microsoft Word
,
Чтобы буквально соответствовать "*.xls~" имени файла, вы бы искали System.Filename:~"*.xls~"
Мой старый, менее информированный ответ, который я храню только из-за новизны передачи в буфер обмена, такой:
Я бы бросил открыть командную строку и сделать dir /b /s/a x:\*.xls~
(подставляя в соответствующую букву диска). Если вы хотите, чтобы список в буфере обмена добавил | clip
в команду. Вы не получите ваши файлы в симпатичном представлении Explorer, но вы получите список.
Если вы хотите сделать это, не выходя из графического интерфейса, просто откройте окно "Выполнить" и введите cmd /c dir /s /a /b x:\*.xls~ | clip
и после cmd.exe
Окно закроется, вы будете иметь свои результаты в буфере обмена.
Предполагая, что вы говорите о Windows Search, попробуйте ~*".xls~"
Это также помогает с круглыми скобками, например ~*"(1).xls"
~
не является подстановочным знаком в PowerShell, поэтому:
dir startingPath -recurse -filter '*.xls~'