Command line 用于排除正在运行的假脱机的批处理行

Command line 用于排除正在运行的假脱机的批处理行,command-line,batch-file,Command Line,Batch File,我目前有一个批处理来运行一个命令,该命令会将一些spool文件直接发送到我的默认打印机,但是我不希望它将.exe或.txt文件发送到打印机。我需要向行中添加什么来排除这些文件类型?我是新来的,所以非常感谢您的帮助 对于/f%%f in('dir/b c:\Windows\System32\spool\PRINTERS)do spool %%f 这可以通过批处理语言的内置关联数组完成: @ECHO OFF &SETLOCAL SET "startfolder=c:\Windows\Syst

我目前有一个批处理来运行一个命令,该命令会将一些spool文件直接发送到我的默认打印机,但是我不希望它将.exe或.txt文件发送到打印机。我需要向行中添加什么来排除这些文件类型?我是新来的,所以非常感谢您的帮助

对于/f%%f in('dir/b c:\Windows\System32\spool\PRINTERS)do spool %%f


这可以通过批处理语言的内置关联数组完成:

@ECHO OFF &SETLOCAL
SET "startfolder=c:\Windows\System32\spool\PRINTERS"
FOR %%a IN (
    .exe
    .txt
    .xls
    .doc
    .mp3
    .avi
    ) DO (
    SET "$%%a=1"
)
FOR /r "%startfolder%" %%a IN (*) DO IF NOT DEFINED $%%~xa spool "%%~fa"