Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Scripting question. Dang, it should be easier than this. I have a file with a list of names. I'd like to turn those names into folders. Whenever I try the FOR loop, all I get is the name of the file I want to read from being created as a folder, not the contents of the file being turned into folders. Just want to mkdir for each item in the list.

share|improve this question

7 Answers 7

One way is to open the list of names in word and do copy and replace. Replace ^p with ^pmkdir this will replace all carraige returns (^p) with a carriage return and the mkdir command. Then save it as a bat and run it. There's def a cleaner way to do this if its going to be used over and over, but this is quick quick.

share|improve this answer
    
+1 - I like it. Quick, simple, easy, and it works. –  Mark Henderson Sep 1 '09 at 0:08
    
I generally use Excel for generating batch files like this, but this method will work too. –  Darth Satan Sep 1 '09 at 9:20

Here you go:

for /f %d in (listfiles) do md %d

This makes a directory under the current directory for each line in a file called "listfiles" in the current directory.

If you saved the file as a .txt file, make sure to reflect that in the command.

for /f %d in (listfiles.txt) do md %d 
share|improve this answer

The code for /f %d in (listfile) do md %d is nice but if you want to use it in a batch file you need to add extra % to the variable. for /f %%d in (listfile) do md %%d

share|improve this answer

if you have powershell then
gc listfile | %{md $_}

share|improve this answer

Assuming list of names are stored in a text file called dirlist.txt, then the command should be like this:

for /F "tokens=1 delims= " %i in (dirlist.txt) do md %i

share|improve this answer

None of the other suggestions worked. I finally got it working in a bat file with:

% for /F %%d IN (yourfile.txt) DO md %%d
share|improve this answer

The other examples will read only up until it encounters a space or \newline (by default). Directories, of course, can have spaces. I just used this in batch to create 120+ directories (with spaces in names) using lines copied out of excel (items were already quoted).

If your folders/dirs have spaces in them, wrap quotes around each filename in the text file. (Of course if you need to do this, then you could just as easily search/replace and prepend 'md ' to each line.. and run that)

for /f "tokens=* delims=,"  %%d in (dirs.txt) do md %%d
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.