【发布时间】:2020-10-24 23:23:48
【问题描述】:
在 cmd 中,我想将文件的文件路径分配给变量名 filePath,例如 'test.txt',不知道完整的文件位置,它只知道某个文件夹,所以我使用 dir /b /a /s "test.txt"。我正在使用以下语法:
set filePath=C:\Users\kadamr\AppData\Local\Test>dir /b /a /s "test.txt"
当我回显 filePath 的值时,我得到的是语法而不是 filePath。
即:C:\Users\kadamr\AppData\Local\Test>dir /b /a /s "test.txt"
我错过了什么?
【问题讨论】:
-
批量你不能这样做。您需要一个for /f 循环来捕获命令的输出。您是否真的尝试包含提示
C:\Users\kadamr\AppData\Local\Test>?是什么让你产生了这个想法? -
我是命令行新手。 dir /b /a /s "test.txt" 在命令行中给出了文件的路径。我想存储这个输出,以便我可以在需要时使用它。所以尝试了这个东西。
-
访问链接,我给你了。它解释了如何存储它。
-
最简单的
for /F "delims=" %%I in ('dir "%LocalAppData%\test.txt" /A-D /B /S 2^>nul') do set "filePath=%%~dpI"呢?请注意,在本地应用程序数据目录或其任何子目录中找到的至少一个名为test.txt的文件上,文件路径在环境变量filePath的末尾分配有反斜杠。在命令提示符窗口cmd /?、dir /?和for /?中运行,并从上到下仔细阅读每个命令的输出帮助。注意:FOR 在'和%ComSpec% /c之间运行命令行,并在后台附加命令行。
标签: batch-file cmd command-line