bat和sh之间的命令行参数语法有什么区别?

时间:2016-07-25 10:59:28

标签: git bash shell batch-file robocopy

我正在尝试在shell脚本(实际上是一个git hook)中运行 robocopy (Windows强大的副本)。它工作正常,直到我添加选项/XO

所以命令:

robocopy source destination a.txt

在.bat和.sh文件中正常工作。

但命令

robocopy source destination a.txt /XO

在.sh中失败并显示错误:

  

错误:参数#3无效:“C:/ Program Files / Git / XO”

虽然它在bat文件中正常工作。

问题在于 robocopy /XO选项;更具体地说,shell脚本将参数传递给 robocopy 的方式。

请提出解决方案。

1 个答案:

答案 0 :(得分:1)

如果您正在使用public class UserAdapter extends RecyclerView.Adapter<UserAdapter.UserViewHolder> { ArrayList<User> users = new ArrayList<>(); public UserAdapter(ArrayList<User> users) { this.users = users; } @Override public UserViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.items,parent,false); return new UserViewHolder(view); } @Override public void onBindViewHolder(UserViewHolder holder, int position) { holder.login.setText(users.get(position).getUser_login()); holder.type.setText(users.get(position).getType()); Picasso.with(context).load(String.valueOf(users.get(position))).into(holder.avatar); } @Override public int getItemCount() { return users.size(); } public class UserViewHolder extends RecyclerView.ViewHolder { TextView login; TextView type; ImageView avatar; public UserViewHolder(View itemView) { super(itemView); login = (TextView)itemView.findViewById(R.id.login); type = (TextView)itemView.findViewById(R.id.type); avatar = (ImageView)itemView.findViewById(R.id.avatar); } } } ,它会智能地将Unix风格的选项转换为Windows风格的选项。因此,例如,命令:

Git Bash

会告诉您它正在使用robocopy source destination a.txt -xo 选项:

/xo