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 6179511
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 24, 20262026-05-24T00:40:44+00:00 2026-05-24T00:40:44+00:00

I am new to writing batch files; it’s syntax makes me vomit and so

  • 0

I am new to writing batch files; it’s syntax makes me vomit and so I try to stay away. Long story short, I needed a quick and easy way to check a massive amount of data and export it all to a .csv file in windows. I wrote a simple little batch file to do the work for me.

I am having some issues with variable scope. The idea of this code is to build a string of data separated by commas and then echo the output. another file will catch the output, but that’s not important.

here is some pseudo code which displays the problem I am having, I have run into this problem several times and have restructured my code significantly to try and avoid it

setlocal EnableDelayedExpansion
::pseudo code for loop
LOOP THROUGH LIST OF FILE PATHS PUTTING THEM INTO %%B do (

set str=, ::reset str

other code

if exist %%B ( 

    other code

    ::echos the file path and checks if it is a specific file i need to search
    echo %%B 2> NUL | find /I /N %%B "%phrase_0_%" > NUL
    if %ERRORLEVEL% == 0 ( 

        ::HERE IS THE PROBLEM SEE BELOW FOR MORE INFO

        type %%B 2> NUL | find /I /N "%phrase_1_%" > temp.txt
        set /p var=<temp.txt
        set "str=!str!%var%,"
        del temp.txt

        type %%B 2> NUL | find /I /N "%phrase_2_%" > temp.txt
        set /p var=<temp.txt
        set "str=!str!%var%,"
        del temp.txt
    )

) else ( ::OTHER CODE )

echo !str!
)
endlocal

Ok, here is what I think the problem is. I have been having trouble with nested variable calls. I would have used that handy for loop trick to put output of one command into a variable, but it required another level of nesting which meant even more trouble with changing the value of the variables. as you can see, i can mess with %str% inside the:

if exists %%B(

by using the setlocal EnableDelayedExpansion and !str! nonsense. but that won’t work when i go another level down with

if %ERRORLEVEL% == 0

do you guys have some suggestions on what the problem might be, or what the solution might be?

  • 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-24T00:40:47+00:00Added an answer on May 24, 2026 at 12:40 am

    Delayed expansion will work regardless of the nesting level. But you have other problems here anyway:

    set /p var=<temp.txt
    set "str=!str!%var%,"
    

    What value do you expect %var% to have there? You’re setting a value and using it in two consecutive lines within a block. You need delayed expansion there as well.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I am new to writing batch files.Can anyone tell me how to open all
We perform updates of large text files by writing new records to a temp
I'm writing an application that monitors a directory for new input files by polling
I am new to python and am writing some scripts to automate downloading files
Typically when writing new code you discover that you are missing a #include because
I am writing some new code that will throw a custom exception - I
I'm writing a new daemon, which will be hosted on Debian Linux. I've found
Archaelus suggested in this post that writing a new format routine to handle named
For various reasons, we are writing a new business objects/data storage library. One of
I'm writing a custom swing component (something completely new, but think JTree or JList).

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.