我的文件中有以下内容:
<?xml version="1.0" encoding="utf-8"?>
<Include>
<?define MajorVersion = "2" ?>
<?define MinorVersion = "5" ?>
<?define BuildNumber = "64" ?>
<?define RevisionNumber = "0" ?>
<?define FullVersion = "$(var.MajorVersion).$(var.MinorVersion).$(var.BuildNumber).$(var.RevisionNumber)"?>
</Include>
我想在 C# 中的 PostBuild 或 AfterBuild 事件期间读取此文件。由于在此事件期间可以访问 Windows 命令,因此我尝试使用 cmd 来读取其中定义的变量值,即"MajorVersion", "MinorVersion", "BuildNumber" 和 "RevisionNumber" 的值。然后我将运行命令以使用这些变量重命名文件夹。我如何在 cmd 提示符/批处理中读取这些特定值?
对于我上面发布的文件内容,我希望将文件夹重命名为“2.5.64.0”。
我研究了这个解决方案 - Read XML file with windows batch在上面的链接中,两个节点之间存在值,但在我的情况下,值作为属性值存在。
我在批处理文件中使用以下命令来实现所需的输出:
@echo off
setlocal enableextensions disabledelayedexpansion
set "MajorVersion="
set "MinorVersion="
set "BuildNumber="
set "RevisionNumber="
for /f "tokens=4 delims= " %%a in ('findstr /c:"MajorVersion =" xmlFile.xml') do set "MajorVersion=%%a"
for /f "tokens=4 delims= " %%a in ('findstr /c:"MinorVersion =" xmlFile.xml') do set "MinorVersion=%%a"
for /f "tokens=4 delims= " %%a in ('findstr /c:"BuildNumber =" xmlFile.xml') do set "BuildNumber=%%a"
for /f "tokens=4 delims= " %%a in ('findstr /c:"RevisionNumber =" xmlFile.xml') do set "RevisionNumber=%%a"
echo %MajorVersion%
echo %MinorVersion%
echo %BuildNumber%
echo %RevisionNumber%"
set "FullVersion=%MajorVersion%.%MinorVersion%.%BuildNumber%.%RevisionNumber%"
echo %FullVersion%
rename "OldFolderName" %FullVersion%
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句