get data match with extra field value using wp_query for custom post

Change your WP Query arguments like this:

$args = array(
    'post_type'   => 'assignment',
    'post_status' => 'publish',
    'meta_key'     => 'batch',
    'meta_value'   => '2017',
);

For multiple post meta you can use meta_query like this

$args = array(
    'post_type'   => 'assignment',
    'post_status' => 'publish',
    'meta_query' => array(
        array(
            'key'     => 'color',
            'value'   => 'blue',
        ),
        array(
            'key' => 'year',
            'value' => '2017',
        )
    ),
);