protected override Variable Evaluate(ParsingScript script) { string source = Utils.GetItem(script).AsString(); script.MoveForwardIf(Constants.NEXT_ARG, Constants.SPACE); string dest = Utils.GetItem(script).AsString(); string src = Path.GetFullPath(source); string dst = Path.GetFullPath(dest); List <Variable> srcPaths = Utils.GetPathnames(src); bool multipleFiles = srcPaths.Count > 1; if (dst.EndsWith("*")) { dst = dst.Remove(dst.Count() - 1); } if ((multipleFiles || Directory.Exists(src)) && !Directory.Exists(dst)) { try { Directory.CreateDirectory(dst); } catch (Exception exc) { throw new ArgumentException("Couldn't create [" + dst + "] :" + exc.Message); } } foreach (Variable srcPath in srcPaths) { string filename = Path.GetFileName(srcPath.String); //string dstPath = Path.Combine(dst, filename); Utils.Copy(srcPath.String, dst); } return(Variable.EmptyInstance); }