有没有这样做?
@echo off ECHO WHAT do you want to do? ECHO 1.MOVE ECHO 2.COPY set "Act=" IF %Act% EQU 1 SET process=MOVE ELSE SET process=COPY %process% testfile.txt New pause
答案 0 :(得分:0)
@echo off
SETLOCAL
ECHO WHAT do you want to do?
ECHO 1.MOVE
ECHO 2.COPY
set /p "Act="
IF "%Act%" EQU "1" (SET "process=MOVE") ELSE (SET "process=COPY")
%process% testfile.txt New
pause
setlocal
确保在流程结束时丢弃程序中的环境更改(如设置act
和process
,因此环境不会受到陈旧数据的污染
/p
的{{1}}选项隐含地来自键盘set
,但如果重定向,也可能来自文件。
accept input
中的引号确保比较运算符的每一边都是非空的,并且如果它包含像空格这样的分隔符,则会被解释为单个字符串。
if
中的括号是必需的(至少关于if-true部分),以便if
不被视为if-true部分中潜在可执行文件的参数。
普通else
语句中的引号确保尾随空格不包含在指定的值中(这可能不是实际需要的,但是习惯这样做是个好主意...你只需要被抓出一次浪费了几个小时追逐流浪空间......)