bat批处理中分割字符串
功能:1.传递一个参数进来,或者是手工录入(值是一个文件的完整路径名)2.进行分割成文件路径和文件名,3.传递出去,#这里没看懂请看下面示例:--------------...
功能:
1.传递一个参数进来,或者是手工录入 (值是一个文件的完整路径名)
2.进行分割成文件路径和文件名,
3.传递出去 ,
#这里没看懂请看下面
示例:
-----------------------------------------
:split
set /p filePath=D:\Program Files\VMware\vmware.exe
rem 上面的值是变动的, 或者传参进来
这里进行分割成两个部分,分割的样式如下:
set filePath=D:\Program Files\VMware & set fileName=vmware.exe
call :seting %filePath% %fileName%
-----------------------------------------
#如果没有描述清楚,请读者的键盘留情
备注:这里面不知道传进来的路径有多长,但是必须分割成两个部分,路径和文件名,
不怕解决方案多,就怕解决方案少,不要生成临时文件
在这段代码执行之后要完成很多功能已经写好了,包括读写文件,具体就不说了, 展开
1.传递一个参数进来,或者是手工录入 (值是一个文件的完整路径名)
2.进行分割成文件路径和文件名,
3.传递出去 ,
#这里没看懂请看下面
示例:
-----------------------------------------
:split
set /p filePath=D:\Program Files\VMware\vmware.exe
rem 上面的值是变动的, 或者传参进来
这里进行分割成两个部分,分割的样式如下:
set filePath=D:\Program Files\VMware & set fileName=vmware.exe
call :seting %filePath% %fileName%
-----------------------------------------
#如果没有描述清楚,请读者的键盘留情
备注:这里面不知道传进来的路径有多长,但是必须分割成两个部分,路径和文件名,
不怕解决方案多,就怕解决方案少,不要生成临时文件
在这段代码执行之后要完成很多功能已经写好了,包括读写文件,具体就不说了, 展开
2013-04-15
展开全部
楼上说的不错; 我稍微改动下 你用的时候可以直接传递进去, 例如你的.bat 名字是 aa.bat 你要分割路径 运行的时候 只要 aa x:\xxx\xxxxx\sss.sss 就可以了 也可以 把文件 直接拖到 这个批处理上就可以得到被拖文件的 名字和路径~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-04-15
展开全部
很简单呀,如下
@echo off
set /p p=请输入一个合法的文件路径,注意,是合法的:
for /f "delims=" %%i in ("%p%") do (
set filep=%%~dpi
set filen=%%~nxi
)
echo 文件夹为%filep%,文件名为%filen%
pause
@echo off
set /p p=请输入一个合法的文件路径,注意,是合法的:
for /f "delims=" %%i in ("%p%") do (
set filep=%%~dpi
set filen=%%~nxi
)
echo 文件夹为%filep%,文件名为%filen%
pause
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
@echo off
echo 分离出传递参数的路径名和文件名
call :split "e:\bat\4\4-12\dd.txt"
echo 传递完毕
pause
exit /b
:split
set "filePath=%~dp1"
set "fileName=%~nx1"
call :seting "%filePath%" "%fileName%"
goto :eof
:seting
echo 调用方式为下面两种:
echo 第一种调用传递过来的路径:%filePath%名称:%fileName%
echo 第二种调用传递过来的路径:%~1名称:%~2
goto :eof
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
@echo off
set /p filePath=D:\Program Files\VMware\vmware.exe
::有/P参数时,是需要手动输入,去掉后,即为固定。
for %%a in ("%filepath%") do (
set str=%%~pda
set var=%%~nxa
)
echo.路径为:%str%
echo.文件为:%var%
pause
set /p filePath=D:\Program Files\VMware\vmware.exe
::有/P参数时,是需要手动输入,去掉后,即为固定。
for %%a in ("%filepath%") do (
set str=%%~pda
set var=%%~nxa
)
echo.路径为:%str%
echo.文件为:%var%
pause
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询