此代码将变量中的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
答案 0 :(得分:3)
@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