Làm cách nào để sử dụng && trong một doskey?


1

Tôi biết tôi có thể chạy hai lệnh back-to-back trong dòng lệnh:

git add -u && git commit --amend --no-edit

Tôi cũng có thiết lập bí danh bằng cách sử dụng doskey

doskey a=git add $*

Nhưng làm thế nào tôi có thể kết hợp nhiều lệnh trong một doskeybí danh?

doskey amend=git add -u && git commit --amend --no-edit

Điều này thất bại bằng cách đặt doskeylệnh đầu tiên doskey amend=git add -uvà sau đó tiến hành thực thi ngay lập tức git commit --amend --no-edittrong thời gian chạy thay vì lưu lệnh tổng hợp vào doskeybí danh.

Tôi cũng đã thử trích dẫn toàn bộ:

doskey amend="git add -u && git commit --amend --no-edit"

Nhưng điều này cũng thất bại vì nó diễn giải các trích dẫn theo nghĩa đen:

'"git add -u && git commit --amend --no-edit"' không được nhận dạng như một lệnh nội bộ hoặc bên ngoài, chương trình có thể hoạt động hoặc tệp bó.

Câu trả lời:


3

Vấn đề là &&biểu thị sự kết thúc của doskeylệnh và gitlệnh thứ hai được thực hiện nội tuyến sau nó.

Tôi đã thử các kết hợp cú pháp khác, nhưng không có kết hợp nào trong số chúng cho phép &&phân tích cú pháp sau khi doskeymở rộng, ngoài:

doskey amend=cmd /c "git add -u && git commit --amend --no-edit"

Điều này khởi động một lớp vỏ mới, không hiệu quả. Một giải pháp tốt hơn có thể là đặt cả hai lệnh vào một tệp bó (ví dụ amend.cmd) và gán macro cho điều này:

doskey amend=amend.cmd

1

Đây là kết quả đầu tiên trong google nhưng tôi đã tìm thấy câu hỏi tương tự khác với câu trả lời hay.

1- thoát khỏi ký tự doskey foo=bar ^& baz

2- sử dụng lệnh tách riêng của doskey doskey foo=bar $T baz

nguồn

Điều này là sạch hơn và không mở thêm cửa sổ lệnh.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.