Reputation: 3190
When we run the following command in PowerShell:
get-date | sc C:\temp\date.log
it creates date.log file with current date.
But if we run the same via CMD:
powershell get-date | sc C:\temp\date.log
It complains:
ERROR: Unrecognized command
DESCRIPTION: SC is a command line program used for communicating with the Service Control Manager and services. USAGE: sc <server> [command] [service name] <option1> <option2>...
Apparently, CMD confuses pipeline meant for POSH, with its own.
Can anyone point me how to make it run via CMD?
Thanks in anticipation.
Upvotes: 8
Views: 16833
Reputation: 27423
As long as the pipe symbol is escaped from cmd with double-quotes, it will work. Sc is an unfortunate alias, since there's an sc.exe command in windows. ? or where-object might be easier than trying to embed an extra set of double-quotes in a query.
powershell "get-date | set-content c:\tmp\date.log"
powershell "get-ciminstance win32_volume | ? label -like 'month *' | select label"
Upvotes: 0