批处理 - 替换特定子目录中的特定字符

时间:2016-08-11 10:02:55

标签: batch-file

我正在尝试创建一个脚本,它将逐行复制子目录中的所有文件,从original_file文件夹到converted_file文件夹,并在看到|时,将其替换为; ..但到目前为止没有运气,第二个循环似乎没有起作用。

ORIGINAL = path to the original_file folder
CONVERTED = path to the converted_file folder


for /f "delims=" %%f in ('dir /b %ORIGINAL%') do (
        FOR /F "tokens=*" %%B IN ('%ORIGINAL%\%%f') DO (
            SET CCC=%%B
            SET CCC=!CCC:^|=^;!
            ECHO !CCC! >> '%CONVERTED%\%%f'
        )
)

我的第一个循环工作正常,发送原始文件夹中的所有文件名,但我的第二个循环未使用。我试图用'和'来播放包含空格的文件/路径。

关于如何使用经典的旧批量技术解决这个问题的任何想法?

1 个答案:

答案 0 :(得分:0)

使用这个就行了,谢谢@aschipfl

for /f "delims=" %%f in ('dir /b %ORIGINAL%') do (
        FOR /F "usebackq tokens=*" %%B IN ("%ORIGINAL%\%%f") DO (
                SET CCC=%%B
                SET "CCC=!CCC:%CHAR_TO_REPLACE%=%CHAR_TO_USE%!"
                ECHO !CCC! >> "%CONVERTED%\%%f"
            )
    )