从Windows命令提示符复制多行,而无需强制换行


16

是否可以从Windows命令提示符复制多行,而无需在每行到达终端的末尾插入新行?

例如,如果我在控制台中包含以下行:

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

如果我选择并复制它,我将在“ some”一词后得到一个换行符,必须手动将其删除。

有没有一种方法可以按照解释/打印的形式而不是用硬线包装的形式复制数据(将被解析的命令,输出的输出)?


1
在Win 7/8中有一个clip.exe,它将输入重定向到剪贴板。您可以像这样使用它c:\> echo your -command | clip.exe。但它更适合于命令的输出..

afaik没有内置的方法可以做到这一点。但也许您可以将类似于简短的autoit脚本与clip.exe结合起来以归档目标
weberik 2013年

1
由于Windows 10的默认行为将包装行选择,因此没有更多问题
phuclv

Answers:


13

Windows Command Prompt在这方面臭名昭著。无法获得Linux Terminal行为(至少根据Luu的评论,对于Windows 10之前的版本)。

但是,cmd.exe中有一个晦涩的功能,它可以帮助您:右键单击选定区域以进行复制时按住Shift键,将删除复制文本中的所有换行符。

如果要选择单个长命令行(跨多个终端行),则可以完成所需的操作。但是,它将始终删除所有换行符,因此无法以明智的方式选择多个命令行(或脚本)。

详细过程:

  • 使用鼠标左键选择长命令行
  • 按下换档
  • 右键单击进入选定区域(进行复制)
  • 释放移位
  • 现在,所选文本位于复制缓冲区中,没有换行符,您可以例如使用鼠标右键再次将其粘贴到cmd.exe中

有趣的是,我从未听说过该功能。看起来就像它要得到的一样好。我不再使用Windows,但是当我有机会确认时,我将接受此答案。:-)
亚当·米勒基普

1
自Windows 10起,您将默认获得Linux行为
phuclv

...所以“不可能获得Linux Terminal行为”是不正确的
phuclv

@Luu:感谢您添加有关Windows 10的信息。但是,“默认”是什么意思?这表明Windows 10之前的系统存在替代行为,没有替代行为,因此您的评论具有误导性。另外:谁在使用Windows 10?(SCNR)
Johannes Overmann '16

1
我使用Windows 10,并且在复制命令输出时有效,但是在从命令提示符下复制语句时则无效。示例:1)在命令提示符中键入一个跨越多行的命令;2)复制它-不需要的换行符也会进入剪贴板。
伊万·阿克切罗夫

3

另一个选择是打开控制台窗口标题栏的上下文菜单,转到“属性”,并使屏幕缓冲区的宽度足够大,以至于不会包裹东西。(似乎是9999。)

如果您需要执行很多操作,则可以更改“默认值”中的选项而不是“属性”。

当然,如果行长于9999个字符,则此方法会失效。


1
也是个好主意!使用起来不太晦涩,但是可见度却更低。
Johannes Overmann '16

1
@Abraxas我已经更详细地重写了答案。
1j01

0

要为Windows 10启用此功能:

使用“ cmd”或“ Windows Powershell”窗口,导航至属性(单击左上角的图标),然后选择选项“启用换行选项”。

我的Powershell命令提示符并没有这个启用,启用它的伎俩我。


-2

只需将代码复制到记事本中,然后在菜单栏中单击,Format然后单击Word Wrap


-4

使用SET,然后组合表达式中的各个部分。此外,您可以为此目的执行批处理文件或宏。

@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
这个答案与问题无关。复制部分在哪里?Windows终端部分在哪里?
Johannes Overmann '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.