在Visual Studio中如何提取文件名中连字符(-)前的部分并赋值给变量
在Visual Studio中如何提取文件名中连字符(-)前的部分并赋值给变量
嘿,我来帮你搞定这个需求!看起来你是想把文件名里连字符 - 之前的内容提取出来,存到变量里对吧?下面分几种常见场景给你具体的实现方法:
场景1:在Visual Studio终端用PowerShell脚本处理
如果你的操作是在VS的PowerShell终端里执行脚本,那可以这样写:
# 先定义文件名变量,也可以替换成你实际的文件名路径 $targetFileName = "test.address-12.txt" # 按连字符分割字符串,取第一个分段 $prefixPart = $targetFileName -split "-" | Select-Object -First 1 # 现在$prefixPart里就存着你要的test.address啦 Write-Host "提取结果:$prefixPart"
原理很简单:-split "-"会把整个文件名按 - 拆成数组,再用Select-Object -First 1取数组的第一个元素,就是你要的前缀部分。
场景2:在Visual Studio终端用CMD批处理脚本处理
如果习惯用CMD批处理,那这段代码能帮到你:
@echo off set "targetFileName=test.address-12.txt" # 以-为分隔符,提取第一个分段赋值给prefixPart变量 for /f "delims=-" %%a in ("%targetFileName%") do set "prefixPart=%%a" echo 提取结果:%prefixPart%
这里用for /f命令指定分隔符为 -,自动把文件名拆分成段,取第一段存到变量里。
场景3:在Visual Studio的tasks.json中配置变量(适合自动化任务)
如果你是想在VS的任务(比如编译、打包任务)里直接提取文件名前缀,那可以利用VS自带的变量替换功能,在.vscode/tasks.json里这样配置:
{ "version": "2.0.0", "tasks": [ { "label": "提取文件名前缀", "type": "shell", "command": "echo ${filePrefix}", "variables": { // 把当前文件的文件名(不含路径)中,从第一个-到结尾的内容替换为空 "filePrefix": "${fileBasename/-*/}" } } ] }
这里${fileBasename}是VS内置变量,代表当前打开文件的文件名(比如test.address-12.txt),${fileBasename/-*/}是替换语法,会去掉第一个 - 及后面的所有内容,直接得到你要的前缀。
备注:内容来源于stack exchange,提问作者fabje
相关产品推荐
相关产品推荐

