反正有这样做吗?如何将参数传递给批处理文件中的变量?
@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
反正有这样做吗?如何将参数传递给批处理文件中的变量?
@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
@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
选项到set
意味着accept input
隐式地来自键盘,但如果重定向也可能来自文件。
Th使用if
中的引号可确保比较运算符的每一侧都非空,并且如果它包含分隔符(如空格),则将其解释为单个字符串。
要求if
中的圆括号(至少关于if-true部分),以便else
不被视为if-true部分中潜在可执行文件的参数。
明文set
语句中的引号确保尾部空格不包含在赋值中(可能实际上并非实际需要,但是习惯于这样做是个好主意......您只需要被捕获一次浪费数小时追逐流浪空间......)
是的,只要你纠正了一些小错别字,该代码就可以工作;你有什么问题? – SomethingDark
实际上没有错别字。语法正确 – Debendra
如果语法是正确的,你不会在这里问这个问题:) – SomethingDark