Sao chép nhiều dòng từ dấu nhắc Windows Command mà không bắt buộc dòng mới


16

Có thể sao chép nhiều dòng từ Dấu nhắc lệnh của Windows mà không cần chèn một dòng mới trong đó mỗi dòng đến cuối của thiết bị đầu cuối không?

Ví dụ: nếu tôi có dòng sau trong bảng điều khiển:

c:\very_long_path_here\more_path_here>command_i_want_to_copy -with -some
arguments that wrap over lines.

Nếu tôi chọn cái này và sao chép nó, tôi sẽ nhận được một dòng mới sau từ 'some', mà tôi sẽ phải xóa thủ công.

Có cách nào để sao chép dữ liệu (lệnh sẽ được phân tích cú pháp, đầu ra được in) ở dạng được diễn giải / in, thay vì với các dòng được bọc cứng?


1
Trong Win 7/8 có một clip.exe, nó chuyển hướng đầu vào vào clipboard. Bạn có thể sử dụng nó như thế nào c:\> echo your -command | clip.exe. Nhưng nó phù hợp hơn cho đầu ra lệnh ..
tuần

afaik không có cách xây dựng để làm điều này. nhưng có lẽ bạn có thể kết hợp một cái gì đó như một tập lệnh tự động ngắn với clip.exe để lưu trữ mục tiêu của mình
weberik 15/03/13

1
kể từ windows 10, hành vi mặc định sẽ bao bọc lựa chọn dòng để không còn vấn đề nữa
phuclv

Câu trả lời:


13

Dấu nhắc lệnh của Windows bị phá vỡ khét tiếng ở khía cạnh này. Không thể có hành vi Linux Terminal (ít nhất là đối với Windows 10 trước nhận xét của Lưu).

Tuy nhiên, có một tính năng tối nghĩa trong cmd.exe giúp: Giữ phím shift khi nhấp chuột phải vào khu vực đã chọn (để sao chép) sẽ xóa TẤT CẢ các dòng mới trong văn bản được sao chép.

Nếu bạn muốn chọn một dòng lệnh dài duy nhất (kéo dài nhiều dòng thiết bị đầu cuối) thì đây là điều bạn muốn. Tuy nhiên, nó sẽ luôn loại bỏ tất cả các dòng mới, vì vậy không thể chọn nhiều dòng lệnh (hoặc một tập lệnh) một cách hợp lý.

Thủ tục thanh toán:

  • Chọn dòng lệnh dài bằng nút chuột trái
  • Nhấn xuống ca
  • Nhấp chuột phải vào khu vực được chọn (để sao chép)
  • Phát hành ca
  • Bây giờ văn bản đã chọn nằm trong bộ đệm sao chép không có dòng mới và ví dụ bạn có thể dán lại vào cmd.exe bằng nút chuột phải

Thật thú vị, tôi chưa bao giờ nghe nói về tính năng đó. Có vẻ như đó là tốt như nó sẽ nhận được. Tôi không sử dụng windows nữa, nhưng khi tôi có cơ hội xác nhận thì tôi sẽ chấp nhận câu trả lời này. :-)
Adam Millerchip

1
kể từ windows 10, bạn sẽ có hành vi Linux theo mặc định
phuclv

... vì vậy "Không thể có hành vi Linux Terminal" là không chính xác
phuclv

@Luu: Cảm ơn bạn đã thêm thông tin về Windows 10. Nhưng bạn có ý nghĩa gì với 'theo mặc định'? Điều này cho thấy rằng có một hành vi thay thế cho các hệ thống trước Windows 10, không có, vì vậy nhận xét của bạn là sai lệch. Ngoài ra: Ai đang sử dụng Windows 10? (SCNR)
Julian Overmann

1
Tôi sử dụng Windows 10 và nó hoạt động khi sao chép đầu ra của các lệnh nhưng không hoạt động khi sao chép các câu lệnh từ dấu nhắc lệnh. Ví dụ: 1) Nhập lệnh kéo dài nhiều dòng trong dấu nhắc lệnh; 2) sao chép nó - NewLines không mong muốn cũng sẽ vào bảng tạm).
Ivan Akcheurov

3

Một tùy chọn khác là mở menu ngữ cảnh của thanh tiêu đề của cửa sổ giao diện điều khiển, đi đến Thuộc tính và làm cho chiều rộng của bộ đệm màn hình đủ lớn để mọi thứ không bao bọc. (9999 dường như là giá trị tối đa.)

Nếu bạn phải làm điều này rất nhiều, bạn có thể thay đổi tùy chọn trong Mặc định thay vì Thuộc tính.

Tất nhiên, phương pháp này bị hỏng nếu các dòng dài hơn 9999 ký tự.


1
Ý tưởng hay quá! Ít che khuất để sử dụng, nhưng tầm nhìn ít hơn.
Julian Overmann

1
@Abraxas Tôi đã viết lại câu trả lời chi tiết hơn nhiều.
1j01

0

Để kích hoạt tính năng này cho Windows 10:

Với cửa sổ "cmd" hoặc "Windows Powershell", điều hướng đến các thuộc tính (biểu tượng nhấp ở phía trên bên trái) và chọn tùy chọn "Bật lựa chọn gói dòng".

Dấu nhắc Powershell của tôi không kích hoạt tính năng này, cho phép nó thực hiện thủ thuật cho tôi.


-2

Chỉ cần sao chép mã vào notepad sau đó trong thanh menu, nhấp vào Formatsau đó nhấpWord Wrap


-4

Sử dụng SET và sau đó kết hợp các phần trong biểu thức. Ngoài ra, bạn có thể làm cho các mục đích như vậy tập tin lô hoặc macro.

@set WAIKTools=%ProgramFiles%\WAIK\Tools\amd64
@set LabelCD=GRTMPVOL_RU

@IF "%time:~0,1%" GTR "0" SET current=%DATE:~-4%-%DATE:~3,2%-%DATE:~0,2%@%TIME:~0,2%.%TIME:~3,2%.%TIME:~6,2%
@IF "%time:~0,1%" LSS "0" SET current=%DATE:~-4%-%DATE:~3,2%-%DATE:~0,2%@0%TIME:~1,1%.%TIME:~3,2%.%TIME:~6,2%

"%WAIKTools%\oscdimg.exe" -h -m -n -l%LabelCD% -b"%cd%\boot\w32sp3.bif" "BUILD-%current%" "BUILD-%current%-ISO\%LabelCD%.ISO"

1
Câu trả lời này không liên quan gì đến câu hỏi. Phần sao chép ở đâu? Phần thiết bị đầu cuối Windows ở đâu?
Julian Overmann
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.