Batch file 获取批处理脚本中文件绝对路径的部分路径
我正在努力解决这个问题,我是批处理脚本的新手 我有一个文件的绝对路径Batch file 获取批处理脚本中文件绝对路径的部分路径,batch-file,Batch File,我正在努力解决这个问题,我是批处理脚本的新手 我有一个文件的绝对路径 pathStr = "C:/a_folder/another_folder/com/project/files/my_file.properties" 我需要知道如何提取路径的以下部分 subStr = "com/project/files/my_file" (without the extension of the file) 如果这有帮助的话:com文件夹始终存在于绝对路径中。唯一不同的是它后面和前面的文件夹的名称 我
pathStr = "C:/a_folder/another_folder/com/project/files/my_file.properties"
我需要知道如何提取路径的以下部分
subStr = "com/project/files/my_file" (without the extension of the file)
如果这有帮助的话:com
文件夹始终存在于绝对路径中。唯一不同的是它后面和前面的文件夹的名称
我不知道这是否可能,有人能给我一个提示吗
@echo off
setlocal
:: Define your starting full path
set "fullPath=C:/a_folder/another_folder/com/project/files/my_file.properties"
:: Remove the extension (also converts / into \)
for %%F in ("%fullPath%") do set "newPath=%%~pnF"
:: Remove the path before com\
set "newPath=%newPath:*\com\=com\%"
:: Display the result
echo newPath="%newPath%"
:: If you want to restore forward slashes for some reason
set "newPath=%newPath:\=/%"
:: Display final result
echo newPath="%newPath%"
--输出--
如果我理解正确,除了删除文件扩展名,您还想删除“%pathStr%”中%%a的
C:/a_文件夹/另一个_文件夹/
?请设置“subStr=%%~PNa”
,然后设置set“subStr=%r:*com/=com/%”
嗨,我无法执行您的代码。。那两套都在循环中吗?例如<代码>对于%%a in(“%pathStr%”)do(set“subStr=%%~PNa”set“subStr=%subStr:*com/=com/%”请原谅我的无知
newPath="com\project\files\my_file"
newPath="com/project/files/my_file"