Как искать файлы с тильдой в имени в 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~'
Другие вопросы по тегам