6

I believe I am using the commands correctly, but the clipboard is empty using the following:

C:\Windows\System32\cmd.exe /c echo 28376^>1847|clip

I believe the problem is the > which I am using, and I use the ^ escape character to override.

Any suggestion as to what is wrong?

1 Answer 1

7

What is wrong?

the clipboard is empty using the following:

echo 28376^>1847|clip

The reason it doesn't work as expected is:

When piping or redirecting text, applying an escape character gets a little more complex, a pipe will start two new cmd.exe instances, each of these cmd processes are passed one side of the pipe and will parse their part once again (with the cmd-line parser, not with the batch-line-parser).

Source: Quotes, Escape Characters, Delimiters - Windows CMD - SS64.com

So you need extra escape characters:

echo 28376^^^>1847|clip

Now, the first caret escapes the second caret ^, the third caret escapes the > so now the new cmd instance inherits >&

Further Reading: batch file - Why does delayed expansion fail when inside a piped block of code? - Stack Overflow

1
  • 1
    Interesting didn't know cmd would act like this when piping... Aug 8, 2022 at 10:49

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .