我们目前正在转换调度程序。目前,我可以使用通配符进行文件传输,然后在后期处理中,我可以获取移动的内容并读取它以获取使用通配符移动的文件的文件名。使用从后期处理中获取名称的新调度程序,我们无法再执行此操作。
传输后,该文件夹应该只包含 1 个同名文件,例如文件夹“C:\Files\”可能包含:
Rainbow.csv
Document 1079475.pdf
Shapes_20180411.txt
如果我想从列表中获取文件名“Document 1079475.pdf”并将其放入变量中,那么在仅知道“Document*.pdf”的情况下,如何使用 Windows 中的批处理脚本来执行此操作?
我尝试过以下命令:
dir "%homedrive%\Files\Document*.pdf" > temp.txt
set /p VAR=<temp.txt
echo %VAR%
但是,运行第一行会返回到文件:
Volume in drive C is OSDisk
Volume Serial Number is D841-0924
Directory of C:\Files
08/01/2016 10:05 PM 128,657 Document 1079475.pdf
1 File(s) 128,657 bytes
0 Dir(s) 63,461,928,960 bytes free
因此变量 VAR 返回
Volume in drive C is OSDisk
答案1
如果您正在进行特定搜索,并且执行不带标题的 dir 并且仅针对文件,例如:
dir /b /A:A "%homedrive%\Files\Document*.pdf" > temp.txt
您尝试的相同命令将起作用并仅为您提供文件名(和换行符)。
dir /?
会给你其他可能有用的选择