我想从完整文件路径变量中分离文件名和目录字符串,以便稍后在批处理脚本中单独引用它们。
输入变量:SET" FULL = C:\ test \ file.txt"
通缉输出:
FILE:file.txt
路径:C:\ test \
目前for循环&语法对我来说没有多大意义(在这种批处理脚本语言中),这使我更难在线找到有效的解决方案...
答案 0 :(得分:1)
set "FULL=C:\test\file.txt"
for %%a in ("%FULL%") do (
set "filePath=%%~dpa"
set "file=%%~nxa"
)
for
循环将迭代set
个文件(在这种情况下只有一个文件集),并且对于每个文件执行do
子句后的代码。
对于for
循环的每次迭代,每次执行do
子句时,可替换参数(前一代码中的%%a
)将保存对文件的引用正在处理。
这个可替换参数有一些修饰符(可以看作是运行for /?
)从文件中检索所需的信息。修饰符的格式为
%% ~ modifier replaceableParameter
在上一个示例代码中,d
修饰符是存储文件的驱动器,p
是存储文件的路径(文件夹层次结构),n
是文件名称没有扩展名,x
是扩展名。所以
%%~dpa = drive and path of the file being referenced by a
%%~nxa = name and extensions of the file being referenced by a