【问题标题】:BATCH FILE: File path from BACK slash to FORWARD slash ( \ to / )批处理文件:从反斜杠到正斜杠的文件路径( \ 到 / )
【发布时间】:2014-07-04 21:54:19
【问题描述】:

首先,我对制作批处理文件的了解最多是有限的,但是....

我有:

setlocal enabledelayedexpansion
(
  for /f  "delims=" %%a in (
    'dir /B /S /A:-D *.wad *.mdl *.wav *.spr *.bmp *.tga *.pcx *.txt *.res'
  ) do (
    set "$Path=%%a"
    set $path=!$path:%cd%=!
    echo !$path:~1!
  )
)>MapResource.res

哪些输出:

Sample.wad  
Folder1\sample.wav  
Folder1\Folder2\sample.mdl  

我想要:

Sample.wad  
Folder1/sample.wav
Folder1/Folder2/sample.mdl 

我需要在现有编码中加入什么才能使我的反斜杠在我的编码中变成正斜杠?

我知道这是一个奇怪的请求,但我尝试使用它的应用程序烦人地需要正斜杠,这允许我可以手动使用记事本中的替换所有功能来完成此操作,但对于我的任务来说会非常乏味尝试做。

谢谢!

【问题讨论】:

  • 将要使用生成的资源文件的应用程序需要正斜杠。当然,我可以利用替换功能手动将所有反斜杠替换为正斜杠,但这非常繁琐,所以我希望有更好的方法。

标签: batch-file command prompt


【解决方案1】:

您已经在使用搜索和替换从文件路径中删除当前目录以生成相对路径。只需使用另一个搜索和替换将\ 转换为/

setlocal enabledelayedexpansion
(
  for /f  "delims=" %%a in (
    'dir /B /S /A:-D *.wad *.mdl *.wav *.spr *.bmp *.tga *.pcx *.txt *.res'
  ) do (
    set "$Path=%%a"
    set "$path=!$path:%cd%=!"
    set "$Path=!$Path:\=/!"
    echo !$path:~1!
  )
)>MapResource.res 

【讨论】:

  • 哇,非常感谢您不仅更正了我的格式(似乎不想复制),还提供了帮助。我没有意识到答案比我想象的要简单得多。再次非常感谢。 :-)
猜你喜欢
  • 2017-03-16
  • 2013-07-23
  • 2014-06-25
  • 2016-11-20
  • 2014-02-04
  • 2012-11-16
  • 1970-01-01
  • 2015-03-24
  • 1970-01-01
相关资源
最近更新 更多