Issue
I need the result of a command to be taken as a parameter in another command.
command /opt <another command output>
On Bash Linux I would do
command /opt `another command`
What is the equivalent of the ` symbol that works in Windows Terminal?
In particular, I am using the command
'C:\Program Files\Display\display64.exe' /listdevices | findstr 22MP55 | %{$_ -replace "- .*",""}
where findstr
is the windows equivalent to grep
and the final command in the pipe is the equivalent to sed
. The output of this command will be 1, 2 or 3, and I need this to be passed to the %HERE
in the following line
'C:\Program Files\Display\display64.exe' /device %HERE /rotate 90
The following minimal example, does not work:
FOR /F %a in ('"C:\Program Files\Display\display64.exe" /listdevices | findstr 22MP55 | %{$_ -replace "- .*",""}') do echo "%a"
What I am doing wrong? (I am new in Windows).
Solution
Use (...)
, the grouping operator to pass output from a command as an argument to another command:
'C:\Program Files\Display\display64.exe' /device (
'C:\Program Files\Display\display64.exe' /listdevices | findstr 22MP55 | %{$_ -replace "- .*",""}
) /rotate 90
Note: $(...)
, the subexpression operator, works too, but (...)
is usually sufficient and has no side effects; you only need $(...)
for multiple (;
-separated) statements - see this answer for details.
As for what you tried:
In POSIX-compatible shells such as Bash,
`...`
is the legacy form of a command substitution whose modern syntax is$(...)
- while PowerShell supports$(...)
too,(...)
is usually preferable, as noted.In PowerShell,
`
serves as the escape character (only), analogous to\
in POSIX-compatible shells - see the conceptual about_Special_Characters help topic.Your attempts to use
FOR /F %a in ...
and%HERE
(which should be%HERE%
) relate to the legacycmd.exe
shell on Windows, not to its successor, PowerShell, whose syntax differs fundamentally.
Answered By - mklement0 Answer Checked By - Dawn Plyler (PHPFixing Volunteer)
0 Comments:
Post a Comment
Note: Only a member of this blog may post a comment.