Batch file 未将文件路径分配给cmd中的变量
在cmd中,我想将一个文件的文件路径,比如说Batch file 未将文件路径分配给cmd中的变量,batch-file,cmd,command-line,Batch File,Cmd,Command Line,在cmd中,我想将一个文件的文件路径,比如说'test.txt'分配给一个变量名filePath,完整的文件位置不知道,它只知道某个文件夹,所以我使用dir/b/a/s“test.txt”。我使用以下语法: set filePath=C:\Users\kadamr\AppData\Local\Test>dir /b /a /s "test.txt" 当我回显filePath的值时,我得到的是语法而不是filePath i、 e:C:\Users\kadamr\AppD
'test.txt'
分配给一个变量名filePath,完整的文件位置不知道,它只知道某个文件夹,所以我使用dir/b/a/s“test.txt”
。我使用以下语法:
set filePath=C:\Users\kadamr\AppData\Local\Test>dir /b /a /s "test.txt"
当我回显filePath的值时,我得到的是语法而不是filePath
i、 e:C:\Users\kadamr\AppData\Local\Test>dir/b/a/s“Test.txt”
我缺少什么?如果它总是在用户的主目录下,请使用USERPROFILE变量作为要搜索的基本目录。为什么在没有指定属性的情况下使用
/a
?此外,请记住,基本目录下可能存在多个test.txt
文件
@ECHO OFF
SETLOCAL
SET "EXITCODE=1"
SET "BASEDIR=%USERPROFILE%\AppData\Local\Test"
FOR /F "delims=" %%A IN ('DIR /S /B "%BASEDIR%\test.txt" 2^>NUL') DO (
ECHO COMMAND: CALL doit.exe "%%~A"
IF ERRORLEVEL 1 (SET "EXITCODE=%ERRORLEVEL%" & GOTO TheEnd)
SET "EXITCODE=0"
)
:TheEnd
EXIT /B %EXITCODE%
在批量生产中,你不能这样做。您需要一个循环来捕获命令的输出。您是否确实尝试包含提示
C:\Users\kadamr\AppData\Local\Test>
?你是怎么想到这个的?我是新来的命令行。dir/b/a/s“test.txt”给出了命令行中文件的路径。我想存储这个输出,以便在需要时使用它。所以我试过了。访问我给你的链接。它解释了如何存储它。对于/F“delims=“%%I in('dir”%LocalAppData%\test.txt“/A-D/B/S 2^>nul”)中最简单的如何设置“filePath=%%~dpI”
?请注意,在本地应用程序数据目录或其任何子目录中,至少有一个名为test.txt
的文件在环境变量filePath
的末尾用反斜杠指定了文件路径。在命令提示窗口中运行cmd/?
、dir/?
和for/?
,并从上而下仔细阅读每个命令的输出帮助。注意:FOR在带有%ComSpec%/c
的'
和追加在后台的命令行之间运行命令行。