Windows 7 Forums

Welcome to Windows 7 Forums. Our forum is dedicated to helping you find support and solutions for any problems regarding your Windows 7 PC be it Dell, HP, Acer, Asus or a custom build. We also provide an extensive Windows 7 tutorial section that covers a wide range of tips and tricks.


Windows 7: Batch File that grabs file names from folder to insert into batch file

30 May 2012   #1
G33kman

Windows 7 (6.1.7600.16385)
 
 
Batch File that grabs file names from folder to insert into batch file

Ok I'm totally at a loss on how to word this so I'm just going to write it out the best that I can...

First I have a batch file that I'm writing that will convert mp4 files to mp3 files (I have a lot) for a buddies band using ffmpeg.

Here's the code that I'm using:

ffmpeg -i folder\video.mp4 -f mp3 -ab 160000 -vn "\different folder\music.mp3"

what I would like to do is add to this so that I don't have to write out this code for every file I have... :/

I have the mp4 files in one folder and than the mp3 files are saving to another folder.

So here's an example of what the code will do if it isn't clear yet.

Folder 1:

video1.mp4
video2.mp4
video3.mp4

what it should do is grab video1.mp4 and convert it.

ffmpeg -i folder\video1.mp4 -f mp3 -ab 160000 -vn "\different folder\music1.mp3"

and than move onto the next one

ffmpeg -i folder\video2.mp4 -f mp3 -ab 160000 -vn "\different folder\music2.mp3"

and than the next one

ffmpeg -i folder\video3.mp4 -f mp3 -ab 160000 -vn "\different folder\music3.mp3"

It's going to have to grab the name from the mp4 file and insert it for the mp3 file.

I can get around pretty good in cmd if it's basic commands but when it comes to something like this I'm a little confused...

Thanks for the help in advance!
I'll see what i can do about searching some more on what I would have to do and if I find the solution I'll post it here if it isn't already answered.


My System SpecsSystem Spec
.

30 May 2012   #2
Trucidation

 

A DOS "for /f" loop should do the trick, although changing the filename extension for the output to do everything in one line escapes me at the moment.

Perhaps you could do a dir .\folder\*.mp4/s/b > mp4s.txt, then make a copy of that and edit each line to rename the file to the destination name, and save it as mp3s.txt. Then you just feed both the source (mp4s.txt) and destination (mp3s.txt) filesnames into the for /f loop which handles the ffmpeg conversion.

Quite a crude solution and you'd have to handpatch the destination filenames, but i can't think of how to get a source mp4 filename and then just change the extension.
My System SpecsSystem Spec
31 May 2012   #3
G33kman

Windows 7 (6.1.7600.16385)
 
 

Well I have gotten some of it figured out...
What my script does so far:

1) It scans the folder containing the mp4 files and saves the list to a text file with the full path of each mp4 file.

[CODE]
dir /s /b "C:\Users\Username\Desktop\Music Stuff\Videos\*.*" > "videolist.txt"

What it shows inside the "videolist" text file:
C:\Users\username\Desktop\Music Stuff\Videos\Video1.mp4
C:\Users\username\Desktop\Music Stuff\Videos\Video2.mp4
C:\Users\username\Desktop\Music Stuff\Videos\Video3.mp4

2) It scans the folder containing the mp4 files again and this time saves the list to a separate text file with just the file name including the extension which isn't a big deal.

[CODE]
dir /b "C:\Users\Username\Desktop\Music Stuff\Videos\*.*" > "musiclist.txt"

What it shows inside the "musiclist" text file:
Video1.mp4
Video2.mp4
Video3.mp4

So far this part works I open the text files and each mp4 file is listed on it's own line and looks like it should work, but the issue I'm having is when I use a for /f statement it doesn't seem to want to take one file from the list do the conversion and than move on to the next file on the list... :/

Here's the entire code that I have so far...

[CODE]

@echo off
dir /s /b "C:\Users\username\Desktop\Music Stuff\Videos\*.*" > "videolist.txt"
dir /b "C:\Users\username\Desktop\Music Stuff\Videos\*.*" > "musiclist.txt"

for /F "tokens=*" %%A in (videolist.tmp) do set video= %%A
for /F "tokens=*" %%A in (musiclist.tmp) do set music= %%A

ffmpeg -i "%video%" -f mp3 -ab 160000 -vn "%music%".mp3

PAUSE

del videolist.txt musiclist.txt


It's not the prettiest code ever but I would think it should work but not so much yet...
Any ideas?
I just need it to take the first line from the videolist.txt file and insert it into the %video% spot and take the first line from the musiclist.txt file and insert it into the %music% spot and than run the conversion and than move on down the list sequentially. Seems easy right?!?! LOL
My System SpecsSystem Spec
.


01 Jun 2012   #4
G33kman

Windows 7 (6.1.7600.16385)
 
 

Well it is figured out!
I was making it WAY more complicated than it needed to be...

Here's the code that worked!

[CODE]

set dir=C:\Users\Username\Desktop\Music Stuff

for /f "delims=" %%A in ('dir /b "%dir%\Videos\*.*"') do ("%dir%\ffmpeg\bin\ffmpeg" -i "%dir%\Videos\%%~A" -f mp3 -ab 160000 -vn "%dir%\Finished Music\%%~nA.mp3"
)


Thanks for the help though!
My System SpecsSystem Spec
Reply

 Batch File that grabs file names from folder to insert into batch file




Thread Tools





Similar help and support threads
Thread Forum
I need a batch file to open a random file within a certain folder/path
I want a batch to select and open a random link file in a folder i have. All the links are music videos I like to listen to, and I kind of want to just have an option for 'surprise me!'. I can change the file names if I have to, and I have a basic batch file ability. I know the simple commands,...
General Discussion
How to run a batch file at logoff & some batch scripting help please
Hiya, I'd just like to run a simple batch file at logoff to backup some settings. I plan to use Robocopy, which is what i use to more thorough backups. Two questions: 1. How make it run by clicking Start > Shutdown? (i realise i could make a shutdown batch file and run it instead, but i'd...
Backup and Restore
batch file open file for program in the startup folder
I have a computer that is a drone specifically for an outside LED sign. This computer is designed to never shut off and doesn't have any other program on it besides Operating System and the sign software. I need to create a batch file that I can place in the "start-up" folder that will open the...
General Discussion
How to create a batch file that will move files based on the file type
How to create a batch file that will move files based on the file type? My Requirement : I need a batch file to copy all .doc files in all my HardDisk to a removable disk say (Z: drive) . Can anyone make it possible using a batch file?Please...Its urgent...
General Discussion
Batch file for moving files to folder?
Hello, Wanted to see if any one here wouldn't mind writing a batch file or script that would move multiple files to a target folder. Here are the specifics: HDD1 Contains Folders A,B,C,etc... Folder A contains Folder A1 which contains File A2 Folder B contains Folder B1 which contains File B2...
General Discussion
Batch File to Open ALL Links in Folder
I have a few LNK files in the same folder and would like to write a batch file that opens all of these links without explicitly having each link listed in the batch file. Is there a way to open all links in one folder? I would presume so, considering Windows has for the most part always had a...
General Discussion

Our Sites

Site Links

About Us

Find Us

Windows 7 Forums is an independent web site and has not been authorized, sponsored, or otherwise approved by Microsoft Corporation. "Windows 7" and related materials are trademarks of Microsoft Corp.

Designer Media Ltd

All times are GMT -5. The time now is 04:50.

Twitter Facebook Google+



Windows 7 Forums

Seven Forums Android App Seven Forums IOS App