我是否使用set或if?

时间:2017-03-01 15:51:47

标签: batch-file

我会使用set还是if更改一些单词?我想这样做,如果某些字符是类型,它将改变它们。如果输入的是字母,则会将其更改为其他字母。防爆。 A = u t = a,如果是,那将是

@echo off

title DNA to mRNA/tRNA
color A

setlocal ENABLEEXTENSIONS
setlocal enabledelayedexpansion

:start
cls
echo Please select what you would like to do.
echo (1) mRNA
echo (2) tRNA
echo (3) Exit

choice /C 123

if ERRORLEVEL 3 exit
if ERRORLEVEL 2 goto tRNA
if ERRORLEVEL 1 goto mRNA


:mRNA
cls
echo Enter the DNA sequence.
set /p mRNA=mRNA:
set a=u
set t=a
set c=g
set g=c
echo %mRNA%
pause
goto start


:tRNA
cls
echo Enter the mRNA sequence.

set /p tRNA=tRNA:
set u=a
set a=u
set g=c
set c=g
echo %tRNA%
pause
goto start

2 个答案:

答案 0 :(得分:1)

hirb

答案 1 :(得分:0)

Aacini几乎是正确的,但我不认为替换是非常正确的。

这是我的版本,它首先将所有字母翻译成数字,然后将所有数字翻译成相应的字母。

这可以避免将所有A转换为U,然后将所有U(原始和新翻译的)翻译回A

@echo off
setlocal enabledelayedexpansion
set mDNA=ugac

for  %%a in ("a=1" "c=2" "g=3" "u=4" "1=u" "2=g" "3=c" "4=a") do (
    set "mDNA=!mDNA:%%~a!"
)

echo Translated pattern is %mDNA%