Running PowerShell command from CMD gives positional parameter error [duplicate]
This question already has an answer here:
problem with powershell and cmd with pipes
1 answer
I have this PowerShell command:
Get-WmiObject -Query "Select * from CIM_DataFile Where Extension = 'ost'" |
Select-Object 'Name' |
Out-File C:tempost.txt -Append
But I need to run it form a command prompt. I'm running it like this:
powershell.exe -ExecutionPolicy ByPass -Command "Get-WmiObject -Query "Select * from CIM_DataFile Where Extension = 'ost'" | Select-Object 'Name' | Out-File C:tempost.txt -Append"
I'm getting this error:
Get-WmiObject : A positional parameter cannot be found that accepts argument '*'.
At line:1 char:1
+ Get-WmiObject -Query Select * from CIM_DataFile Where Extension = 'os ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Get-WmiObject], ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.GetWmiObjectCommand
How do I run this correctly?
powershell cmd escaping quoting
marked as duplicate by Ansgar Wiechers, TheIncorrigible1, mklement0
StackExchange.ready(function() {
if (StackExchange.options.isMobile) return;
$('.dupe-hammer-message-hover:not(.hover-bound)').each(function() {
var $hover = $(this).addClass('hover-bound'),
$msg = $hover.siblings('.dupe-hammer-message');
$hover.hover(
function() {
$hover.showInfoMessage('', {
messageElement: $msg.clone().show(),
transient: false,
position: { my: 'bottom left', at: 'top center', offsetTop: -7 },
dismissable: false,
relativeToBody: true
});
},
function() {
StackExchange.helpers.removeMessages();
}
);
});
});
Nov 14 '18 at 18:59
This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
add a comment |
This question already has an answer here:
problem with powershell and cmd with pipes
1 answer
I have this PowerShell command:
Get-WmiObject -Query "Select * from CIM_DataFile Where Extension = 'ost'" |
Select-Object 'Name' |
Out-File C:tempost.txt -Append
But I need to run it form a command prompt. I'm running it like this:
powershell.exe -ExecutionPolicy ByPass -Command "Get-WmiObject -Query "Select * from CIM_DataFile Where Extension = 'ost'" | Select-Object 'Name' | Out-File C:tempost.txt -Append"
I'm getting this error:
Get-WmiObject : A positional parameter cannot be found that accepts argument '*'.
At line:1 char:1
+ Get-WmiObject -Query Select * from CIM_DataFile Where Extension = 'os ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Get-WmiObject], ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.GetWmiObjectCommand
How do I run this correctly?
powershell cmd escaping quoting
marked as duplicate by Ansgar Wiechers, TheIncorrigible1, mklement0
StackExchange.ready(function() {
if (StackExchange.options.isMobile) return;
$('.dupe-hammer-message-hover:not(.hover-bound)').each(function() {
var $hover = $(this).addClass('hover-bound'),
$msg = $hover.siblings('.dupe-hammer-message');
$hover.hover(
function() {
$hover.showInfoMessage('', {
messageElement: $msg.clone().show(),
transient: false,
position: { my: 'bottom left', at: 'top center', offsetTop: -7 },
dismissable: false,
relativeToBody: true
});
},
function() {
StackExchange.helpers.removeMessages();
}
);
});
});
Nov 14 '18 at 18:59
This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
1
Use single-quotes for the-Queryparameter and escape your double-quotes with^.
– TheIncorrigible1
Nov 14 '18 at 17:45
2
Escape the nested double quotes with backslashes:"Get-WmiObject -Query "Select * from ..." | ..."
– Ansgar Wiechers
Nov 14 '18 at 17:50
@AnsgarWiechers Why? I thought thecmdescape was^
– TheIncorrigible1
Nov 14 '18 at 17:56
2
Don't ask me why. All I can tell you is that^is the escape character in CMD most of the time. ;)
– Ansgar Wiechers
Nov 14 '18 at 17:57
1
@TheIncorrigible1: It is PowerShell that requires-escaping of"chars. when processing CLI arguments.cmd.exeignores theitself, though its treating the following"as a syntax element then brings its own challenges.
– mklement0
Nov 14 '18 at 19:07
add a comment |
This question already has an answer here:
problem with powershell and cmd with pipes
1 answer
I have this PowerShell command:
Get-WmiObject -Query "Select * from CIM_DataFile Where Extension = 'ost'" |
Select-Object 'Name' |
Out-File C:tempost.txt -Append
But I need to run it form a command prompt. I'm running it like this:
powershell.exe -ExecutionPolicy ByPass -Command "Get-WmiObject -Query "Select * from CIM_DataFile Where Extension = 'ost'" | Select-Object 'Name' | Out-File C:tempost.txt -Append"
I'm getting this error:
Get-WmiObject : A positional parameter cannot be found that accepts argument '*'.
At line:1 char:1
+ Get-WmiObject -Query Select * from CIM_DataFile Where Extension = 'os ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Get-WmiObject], ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.GetWmiObjectCommand
How do I run this correctly?
powershell cmd escaping quoting
This question already has an answer here:
problem with powershell and cmd with pipes
1 answer
I have this PowerShell command:
Get-WmiObject -Query "Select * from CIM_DataFile Where Extension = 'ost'" |
Select-Object 'Name' |
Out-File C:tempost.txt -Append
But I need to run it form a command prompt. I'm running it like this:
powershell.exe -ExecutionPolicy ByPass -Command "Get-WmiObject -Query "Select * from CIM_DataFile Where Extension = 'ost'" | Select-Object 'Name' | Out-File C:tempost.txt -Append"
I'm getting this error:
Get-WmiObject : A positional parameter cannot be found that accepts argument '*'.
At line:1 char:1
+ Get-WmiObject -Query Select * from CIM_DataFile Where Extension = 'os ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Get-WmiObject], ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.GetWmiObjectCommand
How do I run this correctly?
This question already has an answer here:
problem with powershell and cmd with pipes
1 answer
powershell cmd escaping quoting
powershell cmd escaping quoting
edited Nov 14 '18 at 18:59
mklement0
131k20245281
131k20245281
asked Nov 14 '18 at 17:33
AlexAlex
173
173
marked as duplicate by Ansgar Wiechers, TheIncorrigible1, mklement0
StackExchange.ready(function() {
if (StackExchange.options.isMobile) return;
$('.dupe-hammer-message-hover:not(.hover-bound)').each(function() {
var $hover = $(this).addClass('hover-bound'),
$msg = $hover.siblings('.dupe-hammer-message');
$hover.hover(
function() {
$hover.showInfoMessage('', {
messageElement: $msg.clone().show(),
transient: false,
position: { my: 'bottom left', at: 'top center', offsetTop: -7 },
dismissable: false,
relativeToBody: true
});
},
function() {
StackExchange.helpers.removeMessages();
}
);
});
});
Nov 14 '18 at 18:59
This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
marked as duplicate by Ansgar Wiechers, TheIncorrigible1, mklement0
StackExchange.ready(function() {
if (StackExchange.options.isMobile) return;
$('.dupe-hammer-message-hover:not(.hover-bound)').each(function() {
var $hover = $(this).addClass('hover-bound'),
$msg = $hover.siblings('.dupe-hammer-message');
$hover.hover(
function() {
$hover.showInfoMessage('', {
messageElement: $msg.clone().show(),
transient: false,
position: { my: 'bottom left', at: 'top center', offsetTop: -7 },
dismissable: false,
relativeToBody: true
});
},
function() {
StackExchange.helpers.removeMessages();
}
);
});
});
Nov 14 '18 at 18:59
This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
1
Use single-quotes for the-Queryparameter and escape your double-quotes with^.
– TheIncorrigible1
Nov 14 '18 at 17:45
2
Escape the nested double quotes with backslashes:"Get-WmiObject -Query "Select * from ..." | ..."
– Ansgar Wiechers
Nov 14 '18 at 17:50
@AnsgarWiechers Why? I thought thecmdescape was^
– TheIncorrigible1
Nov 14 '18 at 17:56
2
Don't ask me why. All I can tell you is that^is the escape character in CMD most of the time. ;)
– Ansgar Wiechers
Nov 14 '18 at 17:57
1
@TheIncorrigible1: It is PowerShell that requires-escaping of"chars. when processing CLI arguments.cmd.exeignores theitself, though its treating the following"as a syntax element then brings its own challenges.
– mklement0
Nov 14 '18 at 19:07
add a comment |
1
Use single-quotes for the-Queryparameter and escape your double-quotes with^.
– TheIncorrigible1
Nov 14 '18 at 17:45
2
Escape the nested double quotes with backslashes:"Get-WmiObject -Query "Select * from ..." | ..."
– Ansgar Wiechers
Nov 14 '18 at 17:50
@AnsgarWiechers Why? I thought thecmdescape was^
– TheIncorrigible1
Nov 14 '18 at 17:56
2
Don't ask me why. All I can tell you is that^is the escape character in CMD most of the time. ;)
– Ansgar Wiechers
Nov 14 '18 at 17:57
1
@TheIncorrigible1: It is PowerShell that requires-escaping of"chars. when processing CLI arguments.cmd.exeignores theitself, though its treating the following"as a syntax element then brings its own challenges.
– mklement0
Nov 14 '18 at 19:07
1
1
Use single-quotes for the
-Query parameter and escape your double-quotes with ^.– TheIncorrigible1
Nov 14 '18 at 17:45
Use single-quotes for the
-Query parameter and escape your double-quotes with ^.– TheIncorrigible1
Nov 14 '18 at 17:45
2
2
Escape the nested double quotes with backslashes:
"Get-WmiObject -Query "Select * from ..." | ..."– Ansgar Wiechers
Nov 14 '18 at 17:50
Escape the nested double quotes with backslashes:
"Get-WmiObject -Query "Select * from ..." | ..."– Ansgar Wiechers
Nov 14 '18 at 17:50
@AnsgarWiechers Why
? I thought the cmd escape was ^– TheIncorrigible1
Nov 14 '18 at 17:56
@AnsgarWiechers Why
? I thought the cmd escape was ^– TheIncorrigible1
Nov 14 '18 at 17:56
2
2
Don't ask me why. All I can tell you is that
^ is the escape character in CMD most of the time. ;)– Ansgar Wiechers
Nov 14 '18 at 17:57
Don't ask me why. All I can tell you is that
^ is the escape character in CMD most of the time. ;)– Ansgar Wiechers
Nov 14 '18 at 17:57
1
1
@TheIncorrigible1: It is PowerShell that requires
-escaping of " chars. when processing CLI arguments. cmd.exe ignores the itself, though its treating the following " as a syntax element then brings its own challenges.– mklement0
Nov 14 '18 at 19:07
@TheIncorrigible1: It is PowerShell that requires
-escaping of " chars. when processing CLI arguments. cmd.exe ignores the itself, though its treating the following " as a syntax element then brings its own challenges.– mklement0
Nov 14 '18 at 19:07
add a comment |
1 Answer
1
active
oldest
votes
You must escape the nested " chars. in your command, which is most robustly done as "" (sic):
PowerShell.exe -c "Get-WmiObject -Query ""Select * ... 'ost'"" | Select ..."
Caveat: Use of "" works well and robustly with powershell.exe, (and pwsh for PowerShell Core) but not with other programs, such as python, ruby, perl or node.
See the linked answer for a detailed explanation, including how to escape for other programs.
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
You must escape the nested " chars. in your command, which is most robustly done as "" (sic):
PowerShell.exe -c "Get-WmiObject -Query ""Select * ... 'ost'"" | Select ..."
Caveat: Use of "" works well and robustly with powershell.exe, (and pwsh for PowerShell Core) but not with other programs, such as python, ruby, perl or node.
See the linked answer for a detailed explanation, including how to escape for other programs.
add a comment |
You must escape the nested " chars. in your command, which is most robustly done as "" (sic):
PowerShell.exe -c "Get-WmiObject -Query ""Select * ... 'ost'"" | Select ..."
Caveat: Use of "" works well and robustly with powershell.exe, (and pwsh for PowerShell Core) but not with other programs, such as python, ruby, perl or node.
See the linked answer for a detailed explanation, including how to escape for other programs.
add a comment |
You must escape the nested " chars. in your command, which is most robustly done as "" (sic):
PowerShell.exe -c "Get-WmiObject -Query ""Select * ... 'ost'"" | Select ..."
Caveat: Use of "" works well and robustly with powershell.exe, (and pwsh for PowerShell Core) but not with other programs, such as python, ruby, perl or node.
See the linked answer for a detailed explanation, including how to escape for other programs.
You must escape the nested " chars. in your command, which is most robustly done as "" (sic):
PowerShell.exe -c "Get-WmiObject -Query ""Select * ... 'ost'"" | Select ..."
Caveat: Use of "" works well and robustly with powershell.exe, (and pwsh for PowerShell Core) but not with other programs, such as python, ruby, perl or node.
See the linked answer for a detailed explanation, including how to escape for other programs.
edited Nov 14 '18 at 20:23
answered Nov 14 '18 at 18:20
mklement0mklement0
131k20245281
131k20245281
add a comment |
add a comment |
1
Use single-quotes for the
-Queryparameter and escape your double-quotes with^.– TheIncorrigible1
Nov 14 '18 at 17:45
2
Escape the nested double quotes with backslashes:
"Get-WmiObject -Query "Select * from ..." | ..."– Ansgar Wiechers
Nov 14 '18 at 17:50
@AnsgarWiechers Why
? I thought thecmdescape was^– TheIncorrigible1
Nov 14 '18 at 17:56
2
Don't ask me why. All I can tell you is that
^is the escape character in CMD most of the time. ;)– Ansgar Wiechers
Nov 14 '18 at 17:57
1
@TheIncorrigible1: It is PowerShell that requires
-escaping of"chars. when processing CLI arguments.cmd.exeignores theitself, though its treating the following"as a syntax element then brings its own challenges.– mklement0
Nov 14 '18 at 19:07