2015-09-11 39 views
1

我对批处理脚本非常新颖。需要从批处理脚本中的目录路径中删除多余的“”

目前我正在写一个批处理脚本,并在我正在从一个文件中像下面的路径:

C\\:\\\Program Files\\\Product\\\Install 

现在我想它象下面这样:

C:\Program Files\Product\Install 

基本上我想删除那些额外\,所以我怎么能以一种简单的方式实现这一点?

+0

您应该解决**导致多余的“\”字符的问题。 – DavidPostill

回答

2
set "_path=C:\\Program Files\\Product\\Install" 
set "_path=%_path:\\=\%" 
echo %_path% 
+0

该解决方案看起来不错,但仍不完美。请注意“C \:”中的“\”,这也需要删除。它应该看起来像“C:” – amuser

+0

因此,它可以进一步设置为“_path =%_ path:\:=:%”以获得所需的结果。谢谢哥们。 – amuser

1
set "badPath=C:\\Program Files\\Product\\Install" 
for %%a in ("%badPath%.") do set "goodPath=%%~fa" 
echo %goodPath% 

这将使用for循环来处理转换利用可替换参数修饰符(见for /?完整的列表)。

注意:包含for循环中使用的结束点包含在确保删除结尾反斜杠的情况下。如果你不需要它,你可以删除点。

+0

无法正常工作,它的prepends当前目录路径也在goodpath中,所以对我无用。 – amuser

+0

@amuser,具有问题中所示的绝对路径,这不会发生。如果您正在处理相对路径,则只会获得当前路径。 –

相关问题