将反斜杠更改为双反斜杠

时间:2020-05-08 18:52:59

标签: batch-file

嗨,我有dirs和subdirs文件,我想以这种格式保存文件

"file:///c:\\test\\subdir\\lastdir\\file.jpg","lastdir"

我坚持将\替换为\\

到目前为止,我所做的是:

SETLOCAL ENABLEDELAYEDEXPANSION
@echo off
echo {
for /f "delims=" %%F in ('dir /s /b /a-d') do (
    for %%I in ("%%~dpF.") do (
    set a = "%%F"
    echo !a!----------------------------this gives me echo disabled
    echo "file:///"%%F","%%~nxI",
    )
)
echo }
pause

我想使用

set a=%%F
set a=%a:\=/%
echo %a%

但是,即使使用!a!

,这也不起作用

1 个答案:

答案 0 :(得分:1)

"file:///c:/test/subdir/lastdir","file.jpg"是您要实现的目标吗?

@SetLocal EnableExtensions DisableDelayedExpansion
@(  Echo {
    For /F "Delims=" %%G In ('Dir /B/S/A-D 2^>NUL') Do @(
        Set "_=%%~dpG"
        SetLocal EnableDelayedExpansion
        Set "_=!_:~,-1!"
        Echo    "file:///!_:\=/!","%%~nxG"
        EndLocal
    )
    Echo }
) > "output.txt"

如果您确实希望输出奇怪的非文件URI类型"file:///c:\\test\\subdir\\lastdir\\file.jpg","lastdir",则:

@SetLocal EnableExtensions DisableDelayedExpansion
@(  Echo {
    For /F "Delims=" %%G In ('Dir /B/S/A-D 2^>NUL') Do @(
        Set "_=%%~dpG"
        SetLocal EnableDelayedExpansion
        For %%H In ("!_:~,-1!") Do @Echo   "file:///!_:\=\\!%%~nxG","%%~nxH"
        EndLocal
    )
    Echo }
) > "output.txt"


只需将最后一行的output.txt文件更改为所需的名称即可。 (如果您确实希望将其移至cmd.exe窗口,只需将"output.txt"替换为CON