首页 > 解决方案 > 我做错了什么?我知道这可能很简单

问题描述

我是批处理脚本的新手,需要弄清楚如何使用用户输入的值来创建变量。

@echo off
set /p userMonth = "Enter Month(mm): "
set /p userDay = "Enter Day (dd): "
set /p userYear = "Enter Year (yyyy): "

echo month: %userMonth%
echo day: %userDay%
echo year: %userYear%

set today= %userMonth%.%userDay%.%userYear%
set month= %userMonth%-%userYear%

当我运行脚本时,输出只是说

month:
day:
year:

在我输入之后(例如)

01
25
2018

标签: batch-file

解决方案


您的 set 命令格式错误。使用引号时,它会" string= data ". 请记住,您也不希望string&之间有空格=。使用集合 /? 查找更多信息。

set /p "userMonth=Enter Month(mm): "
set /p "userDay=Enter Day (dd): "
set /p "userYear=Enter Year (yyyy): "

echo month: %userMonth%
echo day: %userDay%
echo year: %userYear%

此外,对于字符串的减法或加法,您需要使用该set /a命令。/A 开关指定等号右侧的字符串是计算的数值表达式。

set "today=%userMonth%.%userDay%.%userYear%"
set /a "month=%userMonth%-%userYear%"

可以使用更多运算符:

   +   Add                set /a "_num=_num+5"
   +=  Add variable       set /a "_num+=5"
   -   Subtract (or unary)set /a "_num=_num-5"
   -=  Subtract variable  set /a "_num-=5"
   *   Multiply           set /a "_num=_num*5"
   *=  Multiply variable  set /a "_num*=5"
   /   Divide             set /a "_num=_num/5"
   /=  Divide variable    set /a "_num/=5"

推荐阅读