批处理字符串处理

问题描述

已知在批处理中获取取了mysql路径字符串:"C:ProgramFilesMySQLMySQLServer5.6binmysqld.exe"--defaults-file="C:ProgramDataMySQLMySQLServer5.6my.ini"MySQL最后我想得到C:ProgramFilesMySQLMySQLServer5.6bin这个字符串,怎么获得?mysql路径字符串是从注册表动态获得的,说白了,我就想获取mysql的安装路径用来执行mysql脚本

解决方案

解决方案二:
System.IO.Path.GetDirectoryName("c:\ab\cc\a.txt");

解决方案三:
没看懂你想干啥说了半天都是批处理批处理程序如何执行的,手动双击的?批处理程序将执行结果写哪了?你想在控制台输出里获取?
解决方案四:
引用1楼bdmh的回复:

System.IO.Path.GetDirectoryName("c:\ab\cc\a.txt");

好吧,是我没表达清楚,我想用一个BAT来执行mysql的脚本,这个bat最后会打包在安装包里面。首先我要获取到mysql的安装路径,但是我不想这个路径让用户来输,所以我在BAT中获取注册表HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMySQL下的ImagePath的KEY值,这个值是这样的"C:ProgramFilesMySQLMySQLServer5.6binmysqld.exe"--defaults-file="C:ProgramDataMySQLMySQLServer5.6my.ini"MySQL很明显太长,我只是想要mysql的安装路径,所以我得从这个字符串里面只截取C:ProgramFilesMySQLMySQLServer5.6bin这一部分就够了,现在BAT不知道怎么截取。
解决方案五:
引用2楼Z65443344的回复:

没看懂你想干啥说了半天都是批处理批处理程序如何执行的,手动双击的?批处理程序将执行结果写哪了?你想在控制台输出里获取?

好吧,是我没表达清楚,我想用一个BAT来执行mysql的脚本,这个bat最后会打包在安装包里面。首先我要获取到mysql的安装路径,但是我不想这个路径让用户来输,所以我在BAT中获取注册表HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMySQL下的ImagePath的KEY值,这个值是这样的"C:ProgramFilesMySQLMySQLServer5.6binmysqld.exe"--defaults-file="C:ProgramDataMySQLMySQLServer5.6my.ini"MySQL很明显太长,我只是想要mysql的安装路径,所以我得从这个字符串里面只截取C:ProgramFilesMySQLMySQLServer5.6bin这一部分就够了,现在BAT不知道怎么截取。

时间: 2024-09-06 11:41:46

批处理字符串处理的相关文章

批处理 字符串去空格实现代码[不同部位]_DOS/BAT

复制代码 代码如下: @echo off :: 去掉左空格 :: :: set "str= ab c&>! " for /f "tokens=*" %%i in ("%str%") do echo "☆%%i☆" pause goto :eof @echo off :: 去掉左空格 :: :: set "str= ab c&>! " :intercept if "%st

BAT批处理实现字符串截取功能_DOS/BAT

获取当前的小时数: @ECHO OFF SET Hour=%TIME:~0,2% IF %Hour% GTR 12 ( ECHO Afternoon ) ELSE ( ECHO Morning ) 打印Windows的版本号: @ECHO OFF FOR /F "tokens=1,2,3,4" %%I IN ('VER') DO ( SET Ver_Temp=%%L ) SET Ver_Major=%Ver_Temp:~0,1% SET Ver_Minor=%Ver_Temp:~2,1

bat 截取字符串(for命令) 推荐收藏_DOS/BAT

FOR命令中有一些变量,他们的用法许多新手朋友还不太了解,今天给大家讲解他们的用法! 先把FOR的变量全部列出来:      ~I            - 删除任何引号("),扩展 %I      %~fI          - 将 %I 扩展到一个完全合格的路径名      %~dI          - 仅将 %I 扩展到一个驱动器号      %~pI          - 仅将 %I 扩展到一个路径      %~nI          - 仅将 %I 扩展到一个文件名      %~

三种DOS批处理下格式化日期字符串方法

 在Linux下,简单的一句话:date '+%Y%m%d-%H%M%S'就可以得到你要的输出:20120331-064219 可是在windows下,要想得到这个,还是需要费点功夫的 谈到日期字符串的输出,真是让人烦.    在Linux下,简单的一句话:date '+%Y%m%d-%H%M%S'就可以得到你要的输出:20120331-064219  可是在windows下,要想得到这个,还是需要费点功夫的.    1. 直接用字符串格式化输出    比如,如果你的机器上时间的输出是这样子的:

再谈DOS批处理下格式化日期字符串的三种方法(详解)_DOS/BAT

谈到日期字符串的输出,真是让人烦. 在Linux下,简单的一句话:date '+%Y%m%d-%H%M%S'就可以得到你要的输出:20120331-064219 可是在windows下,要想得到这个,还是需要费点功夫的. 1. 直接用字符串格式化输出 比如,如果你的机器上时间的输出是这样子的: c:\>echo %date%-%time% 2012-03-31 星期六- 6:44:02.50 那么,要想得到输出20120331- 64402,可以这样截取字符串: c:\>echo %date:

DOS批处理的字符串功能

原文:DOS批处理的字符串功能 DOS批处理的字符串功能 批处理有着具有非常强大的字符串处理能力,其功能绝不低于C语言里面的字符串函数集.批处理中可实现的字符串处理功能有:截取字符串内容.替换字符串特定字段.合并字符串.扩充字符串等功能.下面对这些功能一一进行讲解. [ 1.截取字符串 ] 截取字符串可以说是字符串处理功能中最常用的一个子功能了,能够实现截取字符串中的特定位置的一个或多个字符.举例说明其基本功能: =========================================

将字符串小写转大写并延时输出的批处理代码_DOS/BAT

出题目的 1 掌握大.小写互换的技巧 2 掌握延时输出技巧 3 掌握字符截取技巧 解题要求 1 确保代码高效.通用 2 尽量简洁代码 3 不生成临时文件 加分规则 1 思路独特基准分5分 2 代码高效.通用基准分4分 3 技巧高超基准分3分 4 代码简洁基准分2分 5 完美代码加分15分 题目如下 有一字符串i like the bathome,because here is the batch of the world. 要求用批处理将字符串的所有字母转成大写并在屏幕上以打字的效果延时输出.

再谈DOS批处理下格式化日期字符串的多种方法(详解)_DOS/BAT

在Linux下,简单的一句话:date '+%Y%m%d-%H%M%S'就可以得到你要的输出:20120331-064219 可是在windows下,要想得到这个,还是需要费点功夫的. 1. 直接用字符串格式化输出 比如,如果你的机器上时间的输出是这样子的: c:\>echo %date%-%time% 2012-03-31 星期六- 6:44:02.50 那么,要想得到输出20120331- 64402,可以这样截取字符串: c:\>echo %date:~0,4%%date:~5,2%%d

批处理中如何判断参数中含有某些字符串?_DOS/BAT

批处理中如何判断参数中含有某些字符串? 一般情况判断完全匹配的时候用== 复制代码 代码如下: @echo off if "%1"=="abc"  @echo OK 但是部分匹配怎么写呢?比如判断参数中前三个字符是"abc"时 复制代码 代码如下: @echo off echo %1|findstr "^abc" >nul echo %errorlevel% 测试结果如下: C:\>test xixi 1 C:\&