изменить маленькую букву только через SET? - PullRequest
0 голосов
/ 18 сентября 2018

этот код изменяет r в переменной на r0.0 (обратите внимание на пробелы до и после). как мне убедиться, что это сделано только в том случае, если r является маленьким, а не заглавным символом? в настоящее время это делает оба. проблема в том, что строка также имеет заглавную R и не может быть обработана так же.

set "string=%string: r = r0.0 %"

примеры строк The Movie Title (2000) Director [Genre, Another] R r6.7 1080p x265 AAC-tt0000000.mkv или The Other Film (1999) Directeur [Genre] PG-13 r 2160p x265 AC3-tt0000000.mp4, где один маленький r в значительной степени означает, что на сервере не было ни одного рейтинга. Я хочу отобразить r0.0 вместо этого. заглавная буква R будет изменена на k17 и т. д., и вот большая часть кода

:: how do I only replace small r this way to avoid the certificate
:: set "filename=%filename: r = r0.0 %"
:: certificates begin
set "filename=%filename:] nr r=] r%"        & rem not rated
:: these have been changed over the years, for example nc-17 used to be k16, could use year based naming.
set "filename=%filename:] g r=] k0 r%"      & rem verified K0: ALL AGES
set "filename=%filename:] tv-y r=] k0 r%"   & rem verified K0: FOR KIDS, INCLUDING AGES 2-6
set "filename=%filename:] tv-g r=] k0 r%"   & rem verified K0: ALL AGES
set "filename=%filename:] tv-y7 r=] k7 r%"  & rem verified K7: AGE 7 AND ABOVE
:: these are flexible, set own
set "filename=%filename:] pg r=] k9 r%"     & rem Some material may not be suitable for young children. Between K7 and K12?
set "filename=%filename:] tv-pg r=] k9 r%"  & rem May be unsuitable to young children. Somewhere between K8 and K13?
:: these are also definite
set "filename=%filename:] pg-13 r=] k13 r%" & rem verified K13: MAY NOT SUIT PRETEENS
set "filename=%filename:] tv-14 r=] k14 r%" & rem verified K14: MAY NOT SUIT UNDER 14
set "filename=%filename:] r r=] k17 r%"     & rem verified K17: UNDER 17 W/GUARDIAN
set "filename=%filename:] tv-ma r=] k17 r%" & rem verified K17: MAY NOT SUIT UNDER 17
set "filename=%filename:] tvma r=] k17 r%"  & rem verified K17: MAY NOT SUIT UNDER 17
set "filename=%filename:] nc-17 r=] k18 r%" & rem verified K18: NO-ONE 17 OR UNDER

1 Ответ

0 голосов
/ 18 сентября 2018
@echo off
setlocal EnableDelayedExpansion

set "string=A low case r and an upcase R too"
echo %string%

set "str=%string%" & set "p=%%" & set "out="
set "s=%string: r =" & call set "str=!p!str:*!s!=!p!" & (if "!str:~0,3!" equ " r " (set "out=!out!!s! r0.00 ") else set "out=!out!!s! k17 ") & set "str=!str:~3!" & set "s=%" & set "out=!out!!s!"

echo %out%

Выход:

A low case r and an upcase R too
A low case r0.00 and an upcase k17 too
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...