我不會用批次檔做這種事,恕我太笨
但如果你肯學C#,可以參考我寫的例子
在編譯出來的EXE檔上滑鼠右鍵→以系統管理員權限執行,即可在任何一個檔案上按滑鼠右鍵,出現的系統選單裡就會有【送到印表機】(這是我寫的標題啦)
using Microsoft.Win32;
using System;
using System.Diagnostics;
using System.Linq;
using System.Reflection;
namespace 新增選單項目
{
    class Program
    {
        private const string MenuName = "*\\shell\\MyPrint";
        private const string Command = "*\\shell\\MyPrint\\command";
        static void Main(string[] args)
        {
            if (!args.Any())
            {
                建立系統右鍵選單();
            }
            else
            {
                if (args.Contains("-p"))
                {
                    var 要印的檔案 = args.Last();
                    Console.WriteLine($"請按任一鍵開始列印{要印的檔案}");
                    Console.ReadKey();
                    // 寫點什麼讓程式列印吧,下面那一段行是動用系統關聯列印
                    ProcessStartInfo info = new ProcessStartInfo(要印的檔案);
                    info.Verb = "Print";
                    info.CreateNoWindow = true;
                    info.WindowStyle = ProcessWindowStyle.Hidden;
                    Process.Start(info);
                }
            }
        }
        private static void 建立系統右鍵選單()
        {
            RegistryKey regmenu = null;
            RegistryKey regcmd = null;
            string exe = Assembly.GetExecutingAssembly().Location;
            try
            {
                regmenu = Registry.ClassesRoot.CreateSubKey(MenuName);
                if (regmenu != null)
                    regmenu.SetValue("", "送到印表機");
                regcmd = Registry.ClassesRoot.CreateSubKey(Command);
                if (regcmd != null)
                    regcmd.SetValue("", $"\"{exe}\" -p \"%1\"");
            }
            catch (Exception ex)
            {
                Console.WriteLine( ex.Message);
                Console.ReadKey();
            }
            finally
            {
                if (regmenu != null)
                    regmenu.Close();
                if (regcmd != null)
                    regcmd.Close();
            }
        }
    }
}

批次檔本身能做的不多,如果一定要用批次檔
預設列印word與文字檔的前提下可以使用此指令
for %%x in (*.doc;*.txt) do "C:\Program Files\Microsoft Office\Office15\WINWORD.EXE" "%%x" /q /n /mFilePrintDefault /mFileExit  
其中 C:\Program Files\Microsoft Office\Office15\WINWORD.EXE 是word檔的路徑名稱
列印文件與bat檔位於同一目錄即可
假設要列印PDF的情況可以參考此篇
如果想要使用bat檔的原因是待處理檔案過多的話可以參考此篇
建議把檔案列印這個動作另外做成一個exe(語言不拘),然後用bat檔來做批次處理
雖然如果有辦法做出exe,原則上會建議直接把所有功能一次寫好就可以了