List specific files from a directory

Multi tool use
I can't list a specific files of a directory passed as argument to a batch file.
The problem I am facing is that the pipe "|" character is not recognized, I used it to circumvent the dir
command limitations that it can
dir /b *.avi *.mp4 *.mkv
within a directory, but as I am creating this batch file to execute after uTorrent, I need to pass the directory as argument.
Globally, what I am trying to do is to automatically convert files downloaded by uTorrent to AAC audio.
Here's the batch files content:
FOR /F "tokens=*" %%i IN ('dir %1 /b /A-D | findstr /I (avi mp4 mkv)') DO ffmpeg -i "%%~fi" -c:v copy -c:a aac -ac 2 "%%~di%%~pi%%~ni_aac%%~xi"
PAUSE
windows command-line ffmpeg batch utorrent
add a comment |
I can't list a specific files of a directory passed as argument to a batch file.
The problem I am facing is that the pipe "|" character is not recognized, I used it to circumvent the dir
command limitations that it can
dir /b *.avi *.mp4 *.mkv
within a directory, but as I am creating this batch file to execute after uTorrent, I need to pass the directory as argument.
Globally, what I am trying to do is to automatically convert files downloaded by uTorrent to AAC audio.
Here's the batch files content:
FOR /F "tokens=*" %%i IN ('dir %1 /b /A-D | findstr /I (avi mp4 mkv)') DO ffmpeg -i "%%~fi" -c:v copy -c:a aac -ac 2 "%%~di%%~pi%%~ni_aac%%~xi"
PAUSE
windows command-line ffmpeg batch utorrent
add a comment |
I can't list a specific files of a directory passed as argument to a batch file.
The problem I am facing is that the pipe "|" character is not recognized, I used it to circumvent the dir
command limitations that it can
dir /b *.avi *.mp4 *.mkv
within a directory, but as I am creating this batch file to execute after uTorrent, I need to pass the directory as argument.
Globally, what I am trying to do is to automatically convert files downloaded by uTorrent to AAC audio.
Here's the batch files content:
FOR /F "tokens=*" %%i IN ('dir %1 /b /A-D | findstr /I (avi mp4 mkv)') DO ffmpeg -i "%%~fi" -c:v copy -c:a aac -ac 2 "%%~di%%~pi%%~ni_aac%%~xi"
PAUSE
windows command-line ffmpeg batch utorrent
I can't list a specific files of a directory passed as argument to a batch file.
The problem I am facing is that the pipe "|" character is not recognized, I used it to circumvent the dir
command limitations that it can
dir /b *.avi *.mp4 *.mkv
within a directory, but as I am creating this batch file to execute after uTorrent, I need to pass the directory as argument.
Globally, what I am trying to do is to automatically convert files downloaded by uTorrent to AAC audio.
Here's the batch files content:
FOR /F "tokens=*" %%i IN ('dir %1 /b /A-D | findstr /I (avi mp4 mkv)') DO ffmpeg -i "%%~fi" -c:v copy -c:a aac -ac 2 "%%~di%%~pi%%~ni_aac%%~xi"
PAUSE
windows command-line ffmpeg batch utorrent
windows command-line ffmpeg batch utorrent
edited Jan 2 at 8:15
slhck
161k47446468
161k47446468
asked Jan 1 at 20:58
AlexandreGAlexandreG
114
114
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
The pipe |
character is not recognized
You would need to escape it as follows:
^|
There are some additional errors in your code:
Piping to
findstr /I (avi mp4 mkv)
doesn't work asfindstr
doesn't work that way. You don't needfindstr
or piping anyway.If it did work you would have to also escape
(
and)
."%%~di%%~pi%%~ni_aac%%~xi"
doesn't give the output file the extension.acc
Try the following:
pushd %1
FOR /F "usebackq tokens=*" %%i IN (`dir /b *.avi *.mp4 *.mkv`) DO (
echo ffmpeg -i "%%~fi" -c:v copy -c:a aac -ac 2 "%%~di%%~pi%%~ni.aac"
)
PAUSE
popd
Remove the echo
if you are happy with the modified ffmpeg
command.
^
Escape character.
Adding the escape character before a command symbol allows it to be
treated as ordinary text.
When piping or redirecting any of these characters you should prefix
with the escape character:& < > ^ |
eg
^ ^& ^| ^> ^< ^^
Source Quotes, Escape Characters, Delimiters - Windows CMD - SS64.com
Further Reading
- An A-Z Index of the Windows CMD command line | SS64.com
- Windows CMD Commands (categorized) - Windows CMD - SS64.com
- For - Loop through command output - Windows CMD - SS64.com
- Pushd - change directory/folder - Windows CMD - SS64.com
Popd - Windows CMD - SS64.com
Quotes, Escape Characters, Delimiters - Windows CMD - SS64.com
PAUSE
No, it does not work: it says') was expected
– AlexandreG
Jan 1 at 21:55
Answer updated.
– DavidPostill♦
Jan 1 at 22:17
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "3"
};
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%2fsuperuser.com%2fquestions%2f1389602%2flist-specific-files-from-a-directory%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
The pipe |
character is not recognized
You would need to escape it as follows:
^|
There are some additional errors in your code:
Piping to
findstr /I (avi mp4 mkv)
doesn't work asfindstr
doesn't work that way. You don't needfindstr
or piping anyway.If it did work you would have to also escape
(
and)
."%%~di%%~pi%%~ni_aac%%~xi"
doesn't give the output file the extension.acc
Try the following:
pushd %1
FOR /F "usebackq tokens=*" %%i IN (`dir /b *.avi *.mp4 *.mkv`) DO (
echo ffmpeg -i "%%~fi" -c:v copy -c:a aac -ac 2 "%%~di%%~pi%%~ni.aac"
)
PAUSE
popd
Remove the echo
if you are happy with the modified ffmpeg
command.
^
Escape character.
Adding the escape character before a command symbol allows it to be
treated as ordinary text.
When piping or redirecting any of these characters you should prefix
with the escape character:& < > ^ |
eg
^ ^& ^| ^> ^< ^^
Source Quotes, Escape Characters, Delimiters - Windows CMD - SS64.com
Further Reading
- An A-Z Index of the Windows CMD command line | SS64.com
- Windows CMD Commands (categorized) - Windows CMD - SS64.com
- For - Loop through command output - Windows CMD - SS64.com
- Pushd - change directory/folder - Windows CMD - SS64.com
Popd - Windows CMD - SS64.com
Quotes, Escape Characters, Delimiters - Windows CMD - SS64.com
PAUSE
No, it does not work: it says') was expected
– AlexandreG
Jan 1 at 21:55
Answer updated.
– DavidPostill♦
Jan 1 at 22:17
add a comment |
The pipe |
character is not recognized
You would need to escape it as follows:
^|
There are some additional errors in your code:
Piping to
findstr /I (avi mp4 mkv)
doesn't work asfindstr
doesn't work that way. You don't needfindstr
or piping anyway.If it did work you would have to also escape
(
and)
."%%~di%%~pi%%~ni_aac%%~xi"
doesn't give the output file the extension.acc
Try the following:
pushd %1
FOR /F "usebackq tokens=*" %%i IN (`dir /b *.avi *.mp4 *.mkv`) DO (
echo ffmpeg -i "%%~fi" -c:v copy -c:a aac -ac 2 "%%~di%%~pi%%~ni.aac"
)
PAUSE
popd
Remove the echo
if you are happy with the modified ffmpeg
command.
^
Escape character.
Adding the escape character before a command symbol allows it to be
treated as ordinary text.
When piping or redirecting any of these characters you should prefix
with the escape character:& < > ^ |
eg
^ ^& ^| ^> ^< ^^
Source Quotes, Escape Characters, Delimiters - Windows CMD - SS64.com
Further Reading
- An A-Z Index of the Windows CMD command line | SS64.com
- Windows CMD Commands (categorized) - Windows CMD - SS64.com
- For - Loop through command output - Windows CMD - SS64.com
- Pushd - change directory/folder - Windows CMD - SS64.com
Popd - Windows CMD - SS64.com
Quotes, Escape Characters, Delimiters - Windows CMD - SS64.com
PAUSE
No, it does not work: it says') was expected
– AlexandreG
Jan 1 at 21:55
Answer updated.
– DavidPostill♦
Jan 1 at 22:17
add a comment |
The pipe |
character is not recognized
You would need to escape it as follows:
^|
There are some additional errors in your code:
Piping to
findstr /I (avi mp4 mkv)
doesn't work asfindstr
doesn't work that way. You don't needfindstr
or piping anyway.If it did work you would have to also escape
(
and)
."%%~di%%~pi%%~ni_aac%%~xi"
doesn't give the output file the extension.acc
Try the following:
pushd %1
FOR /F "usebackq tokens=*" %%i IN (`dir /b *.avi *.mp4 *.mkv`) DO (
echo ffmpeg -i "%%~fi" -c:v copy -c:a aac -ac 2 "%%~di%%~pi%%~ni.aac"
)
PAUSE
popd
Remove the echo
if you are happy with the modified ffmpeg
command.
^
Escape character.
Adding the escape character before a command symbol allows it to be
treated as ordinary text.
When piping or redirecting any of these characters you should prefix
with the escape character:& < > ^ |
eg
^ ^& ^| ^> ^< ^^
Source Quotes, Escape Characters, Delimiters - Windows CMD - SS64.com
Further Reading
- An A-Z Index of the Windows CMD command line | SS64.com
- Windows CMD Commands (categorized) - Windows CMD - SS64.com
- For - Loop through command output - Windows CMD - SS64.com
- Pushd - change directory/folder - Windows CMD - SS64.com
Popd - Windows CMD - SS64.com
Quotes, Escape Characters, Delimiters - Windows CMD - SS64.com
PAUSE
The pipe |
character is not recognized
You would need to escape it as follows:
^|
There are some additional errors in your code:
Piping to
findstr /I (avi mp4 mkv)
doesn't work asfindstr
doesn't work that way. You don't needfindstr
or piping anyway.If it did work you would have to also escape
(
and)
."%%~di%%~pi%%~ni_aac%%~xi"
doesn't give the output file the extension.acc
Try the following:
pushd %1
FOR /F "usebackq tokens=*" %%i IN (`dir /b *.avi *.mp4 *.mkv`) DO (
echo ffmpeg -i "%%~fi" -c:v copy -c:a aac -ac 2 "%%~di%%~pi%%~ni.aac"
)
PAUSE
popd
Remove the echo
if you are happy with the modified ffmpeg
command.
^
Escape character.
Adding the escape character before a command symbol allows it to be
treated as ordinary text.
When piping or redirecting any of these characters you should prefix
with the escape character:& < > ^ |
eg
^ ^& ^| ^> ^< ^^
Source Quotes, Escape Characters, Delimiters - Windows CMD - SS64.com
Further Reading
- An A-Z Index of the Windows CMD command line | SS64.com
- Windows CMD Commands (categorized) - Windows CMD - SS64.com
- For - Loop through command output - Windows CMD - SS64.com
- Pushd - change directory/folder - Windows CMD - SS64.com
Popd - Windows CMD - SS64.com
Quotes, Escape Characters, Delimiters - Windows CMD - SS64.com
PAUSE
edited Jan 1 at 22:22
answered Jan 1 at 21:05


DavidPostill♦DavidPostill
105k25227262
105k25227262
No, it does not work: it says') was expected
– AlexandreG
Jan 1 at 21:55
Answer updated.
– DavidPostill♦
Jan 1 at 22:17
add a comment |
No, it does not work: it says') was expected
– AlexandreG
Jan 1 at 21:55
Answer updated.
– DavidPostill♦
Jan 1 at 22:17
No, it does not work: it says
') was expected
– AlexandreG
Jan 1 at 21:55
No, it does not work: it says
') was expected
– AlexandreG
Jan 1 at 21:55
Answer updated.
– DavidPostill♦
Jan 1 at 22:17
Answer updated.
– DavidPostill♦
Jan 1 at 22:17
add a comment |
Thanks for contributing an answer to Super User!
- 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%2fsuperuser.com%2fquestions%2f1389602%2flist-specific-files-from-a-directory%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
7tTWHUA0 ks ehuys P9B1Jx bE hym5drgzbW HWsTCIpeH0SwQkgO8kqGfWM2J