Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 获取批处理脚本中文件绝对路径的部分路径_Batch File - Fatal编程技术网

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"