我有很多报告在D:\ folder \ data \ data1中采用txt格式。逗号的出现是不可预测的。在txt文件中找到逗号时我需要用空格替换。所以我必须为多个文本文件执行此操作
例如:报告中的数据将类似于
abacndl 123455 300,90.55 aldfankas 400,123,455.900
adsmnfnka 12345774 134,789.9 aeraermk 456,987,87.000
并且明智地继续
有人可以帮我为这个场景做一个批处理脚本
答案 0 :(得分:2)
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET "sourcedir=U:\sourcedir\t w o"
PUSHD "%sourcedir%"
FOR %%a IN (*.txt) DO (
FOR /f "usebackq delims=" %%b IN ("%%a") DO (
SET "line=%%b"
>>"%%~na.XTX" echo(!line:,= !
)
)
rem delete existing text files and renam new version to .txt
del *.txt
ren *.xtx *.txt
popd
GOTO :EOF
您需要更改sourcedir
的设置以适合您的具体情况。
.txt
文件,将每行读取到%%b
,将其保存在line
进行处理,然后输出line
处理以替换每个,
空间 为新输出文件选择的名称为%%~na.xtx
- 即具有新扩展名xtx
的原始名称。这样,您可以在使用前轻松检查新格式。我假设在运行之前没有.xtx
个文件。
我不理解上面del
/ ren
的问题;它对我来说很完美。
这是另一个版本 - 只有重命名代码不同。
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET "sourcedir=U:\sourcedir\t w o"
PUSHD "%sourcedir%"
FOR %%a IN (*.txt) DO (
FOR /f "usebackq delims=" %%b IN ("%%a") DO (
SET "line=%%b"
>>"%%~na.XTX" echo(!line:,= !
)
)
rem rename new version to .txt - alternative codeline
FOR %%a IN (*.xtx) DO (MOVE /y "%%~na.XTX" "%%~na.txt") >nul
popd
GOTO :EOF