【问题标题】:Need to remove extra "\" from a directory path in batch script需要从批处理脚本中的目录路径中删除额外的“\”
【发布时间】:2015-12-07 23:03:28
【问题描述】:

我对批处理脚本很陌生。

目前我正在编写一个批处理脚本,并且我正在从一个文件中获取路径,如下所示:

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

现在我想要如下所示:

C:\Program Files\Product\Install

基本上我想删除那些额外的\,那么我怎样才能以简单的方式实现呢?

【问题讨论】:

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

标签: batch-file cmd scripting window


【解决方案1】:
set "_path=C:\\Program Files\\Product\\Install"
set "_path=%_path:\\=\%"
echo %_path%

【讨论】:

  • 这个解决方案看起来不错,但仍然不完美。请注意“C\:”中的“\”,它也需要删除。它应该看起来像“C:”
  • 因此可以进一步设置,如 set "_path=%_path:\:=:%" 以获得所需的结果。谢谢朋友。
【解决方案2】:
set "badPath=C:\\Program Files\\Product\\Install"
for %%a in ("%badPath%.") do set "goodPath=%%~fa"
echo %goodPath%

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

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

【讨论】:

  • 工作不正常,它的当前目录路径也在goodpath中,所以对我没用。
  • @amuser,绝对路径如问题所示,这是不可能发生的。只有在处理相对路径时才会添加当前路径。
猜你喜欢
  • 1970-01-01
  • 2014-02-12
  • 2013-11-20
  • 2021-09-08
  • 1970-01-01
  • 1970-01-01
  • 2018-03-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多