Batch file 该命令的语法不正确
我有以下代码:Batch file 该命令的语法不正确,batch-file,Batch File,我有以下代码: set originalDiractory = %1 set tableauReposetory = %2 set imageName = %3 set isFemale = %4 IF %isFemale% ==1( copy /y "%originalDiractory%\User_Gender_Files\Female.png" "%tableauReposetory%\%imageName%.png" ) IF %isFemale% ==0( copy /y "%or
set originalDiractory = %1
set tableauReposetory = %2
set imageName = %3
set isFemale = %4
IF %isFemale% ==1(
copy /y "%originalDiractory%\User_Gender_Files\Female.png" "%tableauReposetory%\%imageName%.png"
)
IF %isFemale% ==0(
copy /y "%originalDiractory%\User_Gender_Files\Male.png" "%tableauReposetory%\%imageName%.png"
)
当我从CMD
运行它时,我得到以下错误:
C:\<path>>set isFemale = "0"
The syntax of the command is incorrect.
C:\<path>>IF 0 ==1(
C:\>set isFemale=“0”
该命令的语法不正确。
C:\>如果0==1(
我错过了什么?怎么了
我在源代码和目标代码周围添加了撇号,但仍然不起作用您可以像这样调整所提供代码的结构:
@Echo关闭
如果“%$4”NEq“1”(如果“%$4”NEq“0”(退出/B),则设置“srcImg=M”
)否则设置“srcImg=Fem”
复制/Y“%1\User\u Gender\u Files\%srcImg%ale.png”“%2\%3.png”2>Nul
此代码与您的代码一样,假定输入参数符合正在运行的
Copy
命令的要求在值和参数之间放置一个空格(如果%var%==1(
)啊,我真不敢相信我竟然想到了这一点,感谢工作似乎也避免了在定义变量时使用空格,set-imageName=%3
与set-imageName=%3
不同,因为第一个变量创建了一个变量imageName
(尾随空格)使用带前导空格的第三个参数的内容。最佳做法是将var name
和var content
都用引号括起来set“imageName=%3”
。此外,如果参数带有引号,您可以去掉它们(如果需要)使用%~3
所显示的代码无法生成所显示的输出。如果我错了,请纠正我,但我认为在使用set
时,您需要接近等号的值。这可能会起作用set isFemale=%4
以及其他值