Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 716881
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 14, 20262026-05-14T05:20:57+00:00 2026-05-14T05:20:57+00:00

I am looking to create a Windows batch script to move about 2,000 files

  • 0

I am looking to create a Windows batch script to move about 2,000 files and splitting them up so that there are 10 files per folder. I have attempted creating a batch script but the syntax really boggles my mind. Here is what I have so far

@echo off

:: Config parameters
set /a groupsize = 10
:: initial counter, everytime counter is 1, we create new folder
set /a n = 1
:: folder counter
set /a nf = 1

for %%f in (*.txt) do (
:: if counter is 1, create new folder
if %n% == 1 (
    md folder%nf%
    set /a n += 1
)

:: move file into folder
mv -Y %%f folder%nf%\%%f

:: reset counter if larger than group size
if %n% == %groupsize% (
    set /a n = 1
) else (
    set /a n += 1
)
)
pause

Basically what this script does is loop through each .txt file in the directory. It creates a new directory in the beginning and moves 10 files into that directory, then creates a new folder again and moves another 10 files into that directory, and so on. However, I’m having problems where the n variable is not being incremented in the loop? I’m sure there’s other errors too since the CMD window closes on me even with pause. Any help or guidance is appreciated, thanks for your time!

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-14T05:20:58+00:00Added an answer on May 14, 2026 at 5:20 am

    A few things you need to know:

    • SETLOCAL ENABLEDELAYEDEXPANSION is needed, since you are changing variables and using their changed values in a single parenthesized block. SET /? on the command line will give some info. Search the internet for this term and you will find a better explanation.
    • The places I use the !nf! format for variables is related to delayed expansion.
    • As ghostdog74 mentioned, you weren’t incrementing %nf%.
    • I initialized nf to 0 instead of 1. This way, the folder number you want to move files to is the same as the folder number you just created. In your code, you create folderX, then increment X, and then try to move the file to X+1.
    • You have to use MOVE to move a file, MV is not valid.

    This batch file works…but make sure you test! I only tested on a small amount of files.

    @ECHO OFF
    
    SETLOCAL ENABLEDELAYEDEXPANSION
    
    :: Config parameters
    SET groupsize=10
    :: initial counter, everytime counter is 1, we create new folder
    SET n=1
    :: folder counter
    SET nf=0
    
    FOR %%f IN (*.txt) DO (
      :: if counter is 1, create new folder
      IF !n!==1 (
        SET /A nf+=1
        MD folder!nf!
      )
    
      :: move file into folder
      MOVE /Y "%%f" folder!nf!
    
      :: reset counter if larger than group size
      IF !n!==!groupsize! (
        SET n=1
      ) ELSE (
        SET /A n+=1
      )
    )
    
    ENDLOCAL
    
    PAUSE
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 400k
  • Answers 400k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer Something like that? import java.lang.reflect.Field; /* ... */ for (int… May 15, 2026 at 4:11 am
  • Editorial Team
    Editorial Team added an answer No. ELMAH is a HTTP module, and unless you are… May 15, 2026 at 4:11 am
  • Editorial Team
    Editorial Team added an answer So after a lot of debugging and bothering a lot… May 15, 2026 at 4:11 am

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.