Powershell: Why does Rename-Item not work as a piped command?
In this script, everything is working as I expect for the most part. However, the rename operation will only work outside of these piped commands
Get-ChildItem -Path $folderpath -Filter $folderfile | Move-Item -
Destination $destination | sleep 5 | Out-File -FilePath $logpath -Append
If I try to do the rename as part of the piped commands, it simply doesn't work. Anywhere outside of that and it will work for a single iteratrion of the filewatcher, and then no more. Why will the rename not work as a piped command?
Get-ChildItem -Path $folderpath -Filter $folderfile | Move-Item -Destination $destination | Rename-Item $destination$folderfile -NewName $newname | Out-File -FilePath $logpath -Append
powershell powershell-v2.0 pipeline
add a comment |
In this script, everything is working as I expect for the most part. However, the rename operation will only work outside of these piped commands
Get-ChildItem -Path $folderpath -Filter $folderfile | Move-Item -
Destination $destination | sleep 5 | Out-File -FilePath $logpath -Append
If I try to do the rename as part of the piped commands, it simply doesn't work. Anywhere outside of that and it will work for a single iteratrion of the filewatcher, and then no more. Why will the rename not work as a piped command?
Get-ChildItem -Path $folderpath -Filter $folderfile | Move-Item -Destination $destination | Rename-Item $destination$folderfile -NewName $newname | Out-File -FilePath $logpath -Append
powershell powershell-v2.0 pipeline
Can you reduce the code to only the relevant portion please?
– marsze
Nov 15 '18 at 14:36
Sure. No problem. Thanks for taking a look!
– Steve Weaver
Nov 15 '18 at 14:39
add a comment |
In this script, everything is working as I expect for the most part. However, the rename operation will only work outside of these piped commands
Get-ChildItem -Path $folderpath -Filter $folderfile | Move-Item -
Destination $destination | sleep 5 | Out-File -FilePath $logpath -Append
If I try to do the rename as part of the piped commands, it simply doesn't work. Anywhere outside of that and it will work for a single iteratrion of the filewatcher, and then no more. Why will the rename not work as a piped command?
Get-ChildItem -Path $folderpath -Filter $folderfile | Move-Item -Destination $destination | Rename-Item $destination$folderfile -NewName $newname | Out-File -FilePath $logpath -Append
powershell powershell-v2.0 pipeline
In this script, everything is working as I expect for the most part. However, the rename operation will only work outside of these piped commands
Get-ChildItem -Path $folderpath -Filter $folderfile | Move-Item -
Destination $destination | sleep 5 | Out-File -FilePath $logpath -Append
If I try to do the rename as part of the piped commands, it simply doesn't work. Anywhere outside of that and it will work for a single iteratrion of the filewatcher, and then no more. Why will the rename not work as a piped command?
Get-ChildItem -Path $folderpath -Filter $folderfile | Move-Item -Destination $destination | Rename-Item $destination$folderfile -NewName $newname | Out-File -FilePath $logpath -Append
powershell powershell-v2.0 pipeline
powershell powershell-v2.0 pipeline
edited Nov 16 '18 at 0:34
marsze
5,53232041
5,53232041
asked Nov 15 '18 at 14:15
Steve WeaverSteve Weaver
3411315
3411315
Can you reduce the code to only the relevant portion please?
– marsze
Nov 15 '18 at 14:36
Sure. No problem. Thanks for taking a look!
– Steve Weaver
Nov 15 '18 at 14:39
add a comment |
Can you reduce the code to only the relevant portion please?
– marsze
Nov 15 '18 at 14:36
Sure. No problem. Thanks for taking a look!
– Steve Weaver
Nov 15 '18 at 14:39
Can you reduce the code to only the relevant portion please?
– marsze
Nov 15 '18 at 14:36
Can you reduce the code to only the relevant portion please?
– marsze
Nov 15 '18 at 14:36
Sure. No problem. Thanks for taking a look!
– Steve Weaver
Nov 15 '18 at 14:39
Sure. No problem. Thanks for taking a look!
– Steve Weaver
Nov 15 '18 at 14:39
add a comment |
1 Answer
1
active
oldest
votes
Move-Item
does not output to the pipeline by default. Use the -PassThru switch:
-PassThru
Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output.
That will pipe it directly into Rename-Item
and you have to specify -NewName
only:
Get-ChildItem -Path $folderpath -Filter $folderfile |
Move-Item -Destination $destination -PassThru |
Rename-Item -NewName $newname -PassThru |
Out-File -FilePath $logpath -Append
Also, you don't even have to use Rename-Item
at all but move it directly to the final target directory + name (assuming $destination
is a directory path):
Get-ChildItem -Path $folderpath -Filter $folderfile |
Move-Item -Destination (Join-Path $destination $newname) -PassThru |
Out-File -FilePath $logpath -Append
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53321398%2fpowershell-why-does-rename-item-not-work-as-a-piped-command%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Move-Item
does not output to the pipeline by default. Use the -PassThru switch:
-PassThru
Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output.
That will pipe it directly into Rename-Item
and you have to specify -NewName
only:
Get-ChildItem -Path $folderpath -Filter $folderfile |
Move-Item -Destination $destination -PassThru |
Rename-Item -NewName $newname -PassThru |
Out-File -FilePath $logpath -Append
Also, you don't even have to use Rename-Item
at all but move it directly to the final target directory + name (assuming $destination
is a directory path):
Get-ChildItem -Path $folderpath -Filter $folderfile |
Move-Item -Destination (Join-Path $destination $newname) -PassThru |
Out-File -FilePath $logpath -Append
add a comment |
Move-Item
does not output to the pipeline by default. Use the -PassThru switch:
-PassThru
Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output.
That will pipe it directly into Rename-Item
and you have to specify -NewName
only:
Get-ChildItem -Path $folderpath -Filter $folderfile |
Move-Item -Destination $destination -PassThru |
Rename-Item -NewName $newname -PassThru |
Out-File -FilePath $logpath -Append
Also, you don't even have to use Rename-Item
at all but move it directly to the final target directory + name (assuming $destination
is a directory path):
Get-ChildItem -Path $folderpath -Filter $folderfile |
Move-Item -Destination (Join-Path $destination $newname) -PassThru |
Out-File -FilePath $logpath -Append
add a comment |
Move-Item
does not output to the pipeline by default. Use the -PassThru switch:
-PassThru
Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output.
That will pipe it directly into Rename-Item
and you have to specify -NewName
only:
Get-ChildItem -Path $folderpath -Filter $folderfile |
Move-Item -Destination $destination -PassThru |
Rename-Item -NewName $newname -PassThru |
Out-File -FilePath $logpath -Append
Also, you don't even have to use Rename-Item
at all but move it directly to the final target directory + name (assuming $destination
is a directory path):
Get-ChildItem -Path $folderpath -Filter $folderfile |
Move-Item -Destination (Join-Path $destination $newname) -PassThru |
Out-File -FilePath $logpath -Append
Move-Item
does not output to the pipeline by default. Use the -PassThru switch:
-PassThru
Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output.
That will pipe it directly into Rename-Item
and you have to specify -NewName
only:
Get-ChildItem -Path $folderpath -Filter $folderfile |
Move-Item -Destination $destination -PassThru |
Rename-Item -NewName $newname -PassThru |
Out-File -FilePath $logpath -Append
Also, you don't even have to use Rename-Item
at all but move it directly to the final target directory + name (assuming $destination
is a directory path):
Get-ChildItem -Path $folderpath -Filter $folderfile |
Move-Item -Destination (Join-Path $destination $newname) -PassThru |
Out-File -FilePath $logpath -Append
edited Nov 15 '18 at 15:09
answered Nov 15 '18 at 15:02
marszemarsze
5,53232041
5,53232041
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53321398%2fpowershell-why-does-rename-item-not-work-as-a-piped-command%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Can you reduce the code to only the relevant portion please?
– marsze
Nov 15 '18 at 14:36
Sure. No problem. Thanks for taking a look!
– Steve Weaver
Nov 15 '18 at 14:39