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

  • Home
  • SEARCH
  • 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 8105605
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 6, 20262026-06-06T00:12:39+00:00 2026-06-06T00:12:39+00:00

I would like to use batch file to insert a string to replace the

  • 0

I would like to use batch file to insert a string to replace the empty space in particular column
say i have a input.txt like following

field1      field2           field3
AAAAA       BBBBB            CCCCC
DDDDD                        EEEEE
FFFFF                        
GGGGG       HHHHH 

I need to insert a string “NULL” on each field that is empty and for sure that field 1 is not empty and field 2,3 sometime will be empty. In addition, space between field1 &field2 is different from field2 & field 3

output.txt

field1      field2           field3
AAAAA       BBBBB            CCCCC
DDDDD       NULL             EEEEE
FFFFF       NULL             NULL    
GGGGG       HHHHH            NULL

Because i am still need to batch file scripting..
i try the to write the code (field 2 is always start from 12 character from left and field 3 is always 29 character from left)

@echo off

set line= 
for /F in (input.txt)do
if "!line:~12" equ " " 
write "NULL"   >> (i am not sure whether this work)

if "!line:~29" equ " "
write "NULL"  

echo .>> output.txt

Perhaps, anyone could correct my mistake?
thanks!!

  • 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-06-06T00:12:40+00:00Added an answer on June 6, 2026 at 12:12 am

    As promised, here is a solution in Python. This program will work just fine with either Python 3.x or with Python 2.7. If you are very new to programming, I suggest Python 3.x, because I think it is easier to learn. You can get Python for free from here: http://python.org/download/

    The latest version of Python is version 3.2.3; I suggest you get that.

    Save the Python code in a file called add_null.py and run it with the command:

    python add_null.py input_file.txt output_file.txt
    

    The code, with lots of comments:

    # import brings in "modules" which contain extra code we can use.
    # The "sys" module has useful system stuff, including the way we can get
    # command-line arguments.
    import sys
    
    # sys.argv is an array of command-line arguments.  We expect 3 arguments:
    # the name of this program (which we don't care about), the input file
    # name, and the output file name.
    if len(sys.argv) != 3:
        # If we didn't get the right number of arguments, print a message and exit.
        print("Usage: python add_null.py <input_file> <output_file>")
        sys.exit(1)
    
    # Unpack the arguments into variables.  Use '_' for any argument we don't
    # care about.
    _, input_file, output_file = sys.argv
    
    
    # Define a function we will use later.  It takes two arguments, a string
    # and a width.
    def s_padded(s, width):
        if len(s) >= width:
            # if it is already wide enough, return it unchanged
            return s
        # Not wide enough!  Figure out how many spaces we need to pad it.
        len_padding = width - len(s)
        # Return string with spaces appended.  Use the Python "string repetition"
        # feature to repeat a single space, len_padding times.
        return s + ' ' * len_padding
    
    
    # These are the column numbers we will use for splitting, plus a width.
    # Numbers put together like this, in parentheses and separated by commas,
    # are called "tuples" in Python.  These tuples are: (low, high, width)
    # The low and high numbers will be used for ranges, where we do use the
    # low number but we stop just before the high number.  So the first pair
    # will get column 0 through column 11, but will not actually get column 12.
    # We use 999 to mean "the end of the line"; if the line is too short, it will
    # not be an error.  In Python "slicing", if the full slice can't be done, you
    # just get however much can be done.
    #
    # If you want to cut off the end of lines that are too long, change 999 to
    # the maximum length you want the line ever to have.  Longer than
    # that will be chopped short by the "slicing".
    #
    # So, this tells the program where the start and end of each column is, and
    # the expected width of the column.  For the last column, the width is 0,
    # so if the last column is a bit short no padding will be added.  If you want
    # to make sure that the lines are all exactly the same length, change the
    # 0 to the width you want for the last column.
    columns = [ (0, 12, 12), (12, 29, 17), (29, 999, 0) ]
    num_columns = len(columns)
    
    # Open input and output files in text mode.
    # Use a "with" statement, which will close the files when we are done.
    with open(input_file, "rt") as in_f, open(output_file, "wt") as out_f:
        # read the first line that has the field headings
        line = in_f.readline()
        # write that line to the output, unchanged
        out_f.write(line)
    
        # now handle each input line from input file, one at a time
        for line in in_f:
            # strip off only the line ending
            line = line.rstrip('\n')
    
            # start with an empty output line string, and append to it
            output_line = ''
            # handle each column in turn
            for i in range(num_columns):
                # unpack the tuple into convenient variables
                low, high, width = columns[i]
                # use "slicing" to get the columns we want
                field = line[low:high]
                # Strip removes spaces and tabs; check to see if anything is left.
                if not field.strip():
                    # Nothing was left after spaces removed, so put "NULL".
                    field = "NULL"
    
                # Append field to output_line.  field is either the original
                # field, unchanged, or else it is a "NULL".  Either way,
                # append it.  Make sure it is the right width.
                output_line += s_padded(field, width)
    
            # Add a line ending to the output line.
            output_line += "\n"
            # Write the output line to the output file.
            out_f.write(output_line)
    

    Output from running this program:

    field1      field2           field3
    AAAAA       BBBBB            CCCCC
    DDDDD       NULL             EEEEE
    FFFFF       NULL             NULL
    GGGGG       HHHHH            NULL
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a batch file where I would like to append to the same
I have a batch file (.BAT) and would like to capture its output into
I would like to use Spring batch for a batch application. I already have
I have an array of Integers in Java, I would like use only a
I have a batch file that creates a scheduled task using schtasks like this:
I would like to run commands in a batch file on multiple computers. For
I would like to send emails from a cmd batch file on windowsOne of
So here's the dealio. I would like to create a simple batch file that'll
I would like to use R to extract the speaker out of scripts formatted
I would like to use Maven's password encryption such as it uses for nodes

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.