2016-03-29 87 views
0

声明:我不是批处理文件大师,只是在Google和SO的帮助下挖掘我的方式。另外请注意,我试图在SourceTree中将此批处理文件作为自定义操作运行。简单SET不能在批处理文件中工作

下面简单SET命令似乎并不值分配给变量:

SET MYVAR = %1 
ECHO "%MYVAR%" 
ECHO "!MYVAR!" 
ECHO %1 

第一回波返回上述"";第二个"!MYVAR!",而最后一个返回命令行参数的实际值。我如何为MVAR分配值?

回答

0

set=每边的空间都很敏感。您正在设置一个名为myvar[Space}的变量

+0

不能相信这是正确的。这是我知道的第一种语言,虽然我只知道其中的一小部分)。万分感谢。 :) – dotNET

+0

@dotNET:大多数UNIX shell(包括Bash)都是一样的。它与驻留在每个进程“VAR = VALUE”中的环境块一致。这种格式来自C'setenv'和'getenv'等。 – cdarke

+0

这是一个脚本,而不是计算机语言,这是主要区别之一。没有预编译器可以去除不必要的空白。你有没有看过挑剔的Python是关于空白的?这是因为它也不是一种编译语言。批处理文件实际上一次只运行一行;你可以添加一个'暂停',暂停时,在该行下面添加一个新命令(并保存脚本文件),当你从'暂停'恢复时,它会运行新添加的命令。任何'set/p'输入提示允许你接管程序。 Bash不会,因为它不是像.bat文件这样的笑话。 – LinuxDisciple