gpt4 book ai didi

string - 批处理文件字符串操作

转载 作者:行者123 更新时间:2023-12-04 06:38:39 26 4
gpt4 key购买 nike

但是,这是一个非常具体的问题;

假设我有一个批处理文件从\位于目录 c:\data\src\branch_1 中运行

如何在批处理文件中将环境变量 %buildpath% 设置为 c:\build\bin\branch_1

(要特别清楚,如果同一个批处理文件位于 c:\foo\bar\branch_2 我希望它设置 %buildpath%c:\build\bin\branch_2)

最佳答案

您应该能够使用环境变量 %~dp0 获取当前正在运行的批处理文件的驱动器和路径。从那里开始,这是一个不是很有效的方法,可以逐个字符地剥离该字符串的末尾并构建一个新字符串。

例如批处理文件:

@setlocal enableextensions enabledelayedexpansion
@echo off
set olddir=%~dp0
echo Current directory is: !olddir!
if "!olddir:~-1!" == "\" (
set olddir=!olddir:~0,-1!
)
set lastbit=
:loop
if not "!olddir:~-1!" == "\" (
set lastbit=!olddir:~-1!!lastbit!
set olddir=!olddir:~0,-1!
goto :loop
)
set newdir=c:\build\bin\!lastbit!
echo New directory is: !newdir!
endlocal

c:\data\src\branch1\qq.cmd 运行返回以下内容:

Current directory is: C:\data\src\branch1\
New directory is: c:\build\bin\branch1

至于它是如何工作的,你可以使用 !xyz:~n,m! 来做一个环境变量的子串,负 m n 表示从结尾而不是从开头。所以第一个 if block 会删除尾随的 \ 如果它在那里。

循环类似,但它将字符从路径末尾传输到新变量,直到找到 \ 的位置。这样您就拥有了路径的最后一点,将其附加到固定的新路径是一件简单的事情。

关于string - 批处理文件字符串操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4943295/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com