Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Как экранировать символ? (http://forum.oszone.net/showthread.php?t=186554)

Seryoga204 26-09-2010 20:21 1505017

Как экранировать символ?
 
Подскажите пожалуйста как экранировать символ "*"? Батник должен искать в текстовом файле строки которые начинаются словом "Аудит*", имено чтобы слово аудит заканчивалось на занак "*". Но отбираются все строки которые начинаются со слова Аудит как с * так и без него. Пробывал так "Аудит^*", но все равно отбираются все со словом Аудит.

kiripanda 26-09-2010 21:12 1505092

Код:

findstr/?
  ...
  \x      Служебный символ: символьное обозначение служебного символа x


Seryoga204 26-09-2010 21:16 1505094

kiripanda,
Спасибо!

Seryoga204 27-09-2010 21:01 1505902

Подскажите пожалуйста. Ситуация таже, только теперь надо єкранировать " , т.е надо искать слова "учет" которые начинаются на знак " (кавычки) , пробЫвал "\"учет" и "^"учет" .

kiripanda 27-09-2010 22:03 1505954

Вложений: 1
Код:

Microsoft Windows XP [Версия 5.1.2600]
(С) Корпорация Майкрософт, 1985-2001.

D:\test>findstr /c:"\"учет" file.txt
+ т.е надо искать слова "учет" которые начинаются на знак " (кавычки) ,
+ пробЫвал "\"учет"
+ и "^"учет" .

D:\test>findstr /c:\"учет file.txt
+ т.е надо искать слова "учет" которые начинаются на знак " (кавычки) ,
+ пробЫвал "\"учет"
+ и "^"учет" .

D:\test>

М.б. не совпадает кодировка в файле и в запросе?

Seryoga204 27-09-2010 22:20 1505971

kiripanda, вот часть кода
Код:

(for /f "tokens=1 delims=:" %%i in ('findstr /brnc:"Отдел"  /C:"Аудит\*"  /C:"\"учет" "%fi%"') do (
 set /a $j=%%i+1& for /f "tokens=1* delims=[]" %%a in (
'find /v /n ""^<"%fi%"^|findstr /bc:"[%%i]" /c:"[!$j!]"') do echo.999 %%b
)) >"%fo%"

Кодировка 866 и там и там.
При запуске вылетает
Код:

Microsoft Windows XP [Версия 5.1.2600]
(С) Корпорация Майкрософт, 1985-2001.

>"L:\1.bat"
Непредвиденное появление: &.
>

Или как сделать типа "?учет", т .е. все строки в которых со второго симола начинается слово учет?

kiripanda 27-09-2010 22:29 1505981

Наверно, надо set /a $j=%%i+1^& for /f "tokens=1* delims=[]" %%a in (

? А нельзя так:
set /a $j=%%i+1
for /f "tokens=1* delims=[]" %%a in (

Цитата:

Или как сделать типа "?учет"
Код:

findstr/?
  ...
Краткая сводка по синтаксису регулярных выражений:
  .        Любой символ.


Seryoga204 27-09-2010 22:50 1506004

Спасибо огромное. Все получиось!


Время: 09:20.

Время: 09:20.
© OSzone.net 2001-