Windows批处理 - 从完整文件路径字符串中分离目录和文件名

时间:2014-10-20 06:32:08

标签: windows batch-file path directory filenames

我想从完整文件路径变量中分离文件名和目录字符串,以便稍后在批处理脚本中单独引用它们。

输入变量:SET" FULL = C:\ test \ file.txt"

通缉输出:

FILE:file.txt

路径:C:\ test \

目前for循环&语法对我来说没有多大意义(在这种批处理脚本语言中),这使我更难在线找到有效的解决方案...

1 个答案:

答案 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