anchor.diff:  					var param = command_split(xs[1], " ");
   					r.value += read(param[0], param[1]);
   				}
  +				else if(xs[0] == "exists")
  +				{
  +					// $(exists a.txt)
  +					
  +					var param = command_split(xs[1], " ");
  +					r.value += fs.FileExists(param[0]) ? "1" : "0";
  +				}
   				else
   				{
   					throw new Error("unknown command [" + s + "]");
  
positive.code: 						}
  					});
  				
  				exec(expand(env, cmd).value);
  			}
  			t = fs.FileExists(target) ? fs.GetFile(target).DateLastModified : 0;
  		}
  	}
  
negative.code: 		if(need)
  		{
  			if(opt.print) {WScript.Echo(target + " : ");}
  			var ifnest = [{current: "if", cond: true}];
  			for(var i = 0; i < p.commands.length; i++)
  			{
  				var cmd = p.commands[i];
  