gpt4 book ai didi

windows - 按文件名搜索文件夹并打印内容

转载 作者:可可西里 更新时间:2023-11-01 09:47:17 24 4
gpt4 key购买 nike

我有文件夹A,其中包含多个名为:

的pdf文件
FL001.pdf
FL002.pdf
FL003.pdf
etc.

文件夹 B 的子目录包含以 文件夹 A 中包含其他 .pdf 文件的文件命名的其他文件夹,如下所示:

FL000-099
FL001
- 001100.pdf
- 001101.pdf
FL002
- 002100.pdf
- 002101.pdf
FL003
- 003100.pdf
- 003101.pdf
FL100-199
FL101
- 101100.pdf
- 101101.pdf
FL102
- 102100.pdf
- 102101.pdf
F3003
- 103100.pdf
- 103101.pdf
etc.

我还有一台网络打印机。


我正在尝试做的事情:

根据文件夹A中的.pdf文件名搜索文件夹B中相应的子目录;如果存在,则将 文件夹 A 中的 .pdf 文件发送到打印机,然后将 文件夹 B 中相应子目录中的所有 .pdf 文件发送到打印机,然后转到下一个文件并对文件夹 A 中的所有名称/文件重复该过程。

打印文件夹 A 中的 .pdf 是可以的,但我需要第二部分的帮助,它不起作用。如果我将 current_directory 更改为 ...\Folder B\FL000-099\ 它可以工作,但我需要从原始路径搜索所有子目录。 (见下面的代码)


我做了什么

@echo off 
set current_directory=C:\Users\user\Desktop\Folder B\
set art_directory=C:\Users\user\Desktop\Folder A\

set filename=FL001
set extension=.pdf

set tofind=%current_directory%%filename%
set tofind2=%art_directory%%filename%

set tofindextension=%tofind2%%extension%


IF EXIST %tofindextension% ( "C:\Program Files\SumatraPDF\SumatraPDF.exe" %tofindextension% -print-to "\\server\printer"
) ELSE (
echo "No file!"
)

IF EXIST %tofind%\ (
FOR /R %tofind% %%F in (*.pdf*) do "C:\Program Files\SumatraPDF\SumatraPDF.exe" %tofind%\%%~nxF -print-to "\\server\printer"

) ELSE (

echo "No file!"
)


pause

是否可以按上述方式进行搜索?你能帮我解决一下吗?

最佳答案

以下批处理脚本完全按照您的要求执行。您的脚本中没有循环,但您必须这样做,请参阅 here how to loop through fileshere how to loop through directories .

需要三个循环,第一个循环需要遍历 Folder A 中的文件。第二个遍历 Folder B 中的所有子目录。最后一个循环获取该子目录中的所有文件,将它们与 Folder A 的文件进行比较。

@echo off
setlocal enabledelayedexpansion

rem set directories
set "current_directory=C:\Users\andre_kampling\Desktop\batTest\Folder B"
set "art_directory=C:\Users\andre_kampling\Desktop\batTest\Folder A"
rem set extension
set "extension=txt"


rem loop through all files of "Folder A"
pushd "%art_directory%"
for /r %%f in ("*.%extension%") do (
set "curFileA=%%~nf"
set "curFileAFull=%%f"
rem loop through all directories of "Folder B"
for /d %%d in ("%current_directory%\*") do (
set "curDirB=%%d"
rem is in "Folder B\*" a folder with the name of file in "Folder A"?
set "curSubDirB=!curDirB!\!curFileA!"

if exist "!curSubDirB!\" (
rem file exists print file of "Folder A" and all files found
rem in sub directory
echo.
echo Subfolder is existent "!curSubDirB!"
call :print curFileAFull

rem loop through all files in that subdirectory
pushd "!curSubDirB!"
for /r %%g in ("*.%extension%") do (
set "file=%%g"
call :print file
)
popd
)
)
)
popd

pause
exit /B

rem function definitions
:print
set "arg=!%1!"
echo File "%arg%" will be printed...
"C:\Program Files\SumatraPDF\SumatraPDF.exe" %arg% -print-to "\\server\printer"

关于windows - 按文件名搜索文件夹并打印内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44697120/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com