1

How would you write a script (preferably for the Windows commandline) that:

  • Examines thousands of MP3 files stored on a single drive (e.g., G:\)
  • Randomizes the collection
  • Populates a series of directories up to 650MB worth of songs (without exceeding 650MB)
  • Every song is shucked exactly once
  • (Optional) The directory size comes as close as possible to 650MB

The DIR, COPY, and XCOPY commands have no explicit file size switches.

A few Google searches have come up with:

It would be ideal if UNIX-like environments can be avoided.

My question, then: How do you compare file (or directory) sizes using the Windows commandline?

8
  • 4
    Why do you need it to leverage DOS?
    – Irwin M. Fletcher
    Feb 9, 2010 at 17:45
  • Windows XP Pro is the environment. DOS is not necessary if there is a Windows tool that can do the same task. Also, would this be a better question for serverfault? Feb 9, 2010 at 18:02
  • 2
    WinXP Pro does not even have DOS on it Feb 9, 2010 at 18:33
  • 1
    I guess by saying DOS Dave means Windows command interpreter (cmd).
    – Helen
    Feb 9, 2010 at 18:46
  • 1
    I know what he meant but I figured I'd bring that up anyway since this is a learning site and there should be correct information here Feb 9, 2010 at 20:23

3 Answers 3

1

You could use JavaScript WSH script. See FileSystemObject.

var WShell = WScript.CreateObject("WScript.Shell");
var fso = WScript.CreateObject("Scripting.FileSystemObject");

VB is evil.

2
  • How could this be integrated into a working shell script? Feb 9, 2010 at 18:29
  • You can use GetFolder and GetFile to iterate through folders and get the file information. The GetFolder page has a great example, and the File object returned by GetFile has a size attribute. after you selected your files you can use the fso.CopyFile method to copy the selected files.
    – Fozi
    Feb 9, 2010 at 19:29
1

What is your definition of a "unix-like environment"? Does a language like Tcl or Python fall into that category? Such programming languages are perfect for tasks like this, with built-in features for scanning directories, getting file sizes, moving files, etc.

Don't hamstring yourself by using a limited language like the windows batch language. Pick a real programming language that has a native port to windows and you're job will likely be much easier.

1
  • Was just looking to create a simple script. I could do it in bash in about 30 minutes. The problem is I want to hand off the program to a friend (a one-time project). Python is a great idea. Feb 9, 2010 at 18:49
0

iTunes has such a feature.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .