use*_*986 2 windows batch-file
如何删除//从fullPath字符串中删除绝对路径字符串
set abs_p=C:\abspath\
set rel_p=C:\abspath\foo\boo\bar
Run Code Online (Sandbox Code Playgroud)
如何从rel_p中删除abs_p?我没有得到语法工作
set rel_p=%rel_p:abs_p=%
Run Code Online (Sandbox Code Playgroud)
一个快速而肮脏的解决方案,只要abs_p不包含=或!
@echo off
setlocal enableDelayedExpansion
set "abs_p=C:\abspath\"
set "rel_p=C:\abspath\foo\boo\bar"
set "rel_p=!rel_p:*%abs_p%=!"
echo relative path = !rel_p!
Run Code Online (Sandbox Code Playgroud)
一个应该始终有效的快速解决方案.
@echo off
setlocal enableDelayedExpansion
set "abs_p=C:\abspath\"
set "rel_p=C:\abspath\foo\boo\bar"
>temp.txt echo !abs_p!
for %%N in (temp.txt) do set /a len=%%~zN-2
set "rel_p=!rel_p:~%len%!"
del temp.txt
echo relative path = !rel_p!
Run Code Online (Sandbox Code Playgroud)
以上使用粗略但有效的方法来获取绝对路径的字符串长度.有一个更复杂但尖叫的快速strLen功能可以代替使用.
| 归档时间: |
|
| 查看次数: |
9374 次 |
| 最近记录: |