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%
-----------------------------------------
#如果没有描述清楚,请读者的键盘留情

备注:这里面不知道传进来的路径有多长,但是必须分割成两个部分,路径和文件名,
不怕解决方案多,就怕解决方案少,不要生成临时文件
在这段代码执行之后要完成很多功能已经写好了,包括读写文件,具体就不说了,
展开
 我来答
匿名用户
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xxpinqz
2013-04-15 · TA获得超过1323个赞
知道小有建树答主
回答量:1055
采纳率:0%
帮助的人:1313万
展开全部
@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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
来自飞英塔说话诙谐的春风
推荐于2017-11-25 · TA获得超过1726个赞
知道小有建树答主
回答量:414
采纳率:60%
帮助的人:411万
展开全部
@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
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式