如何修改txt的内容并在新文件夹中另存为csv
我是新来的,并尝试搜索论坛等的答案,并已部分有,但需要帮助,以达到最后 它是什么-我需要一个程序-一些基本的东西,例如一个.bat文件,从文件夹a中获取.txt文件,修改文件内容(用分号替换所有逗号)并将其移动到文件夹B,但作为一个.csv文件而不是文本文件 最多有20个小文件需要“转换” 我发现下面的代码可以用替换所有;并保存为.csv文件如何修改txt的内容并在新文件夹中另存为csv,csv,batch-file,converter,Csv,Batch File,Converter,我是新来的,并尝试搜索论坛等的答案,并已部分有,但需要帮助,以达到最后 它是什么-我需要一个程序-一些基本的东西,例如一个.bat文件,从文件夹a中获取.txt文件,修改文件内容(用分号替换所有逗号)并将其移动到文件夹B,但作为一个.csv文件而不是文本文件 最多有20个小文件需要“转换” 我发现下面的代码可以用替换所有;并保存为.csv文件 @echo off setlocal enabledelayedexpansion for /f "delims==" %%A
@echo off
setlocal enabledelayedexpansion
for /f "delims==" %%A in (13-06-477.txt) do set string=%%A & echo !string: =;! >> 13-06-477.csv
但这会将指定的文件而不是包含多个文件的文件夹转换为变量名。有人能帮忙吗
非常感谢
克里斯示例脚本:
@echo off
setlocal enabledelayedexpansion
set "fldrin=Folder A"
set "fldrou=Folder B"
for /f "tokens=*" %%G in ('dir /B "%fldrin%\*.txt"') do (
echo in="%fldrin%\%%~G" out="%fldrou%\%%~nG.csv"
rem type nul>"%fldrou%\%%~nG.csv"
for /F "usebackq tokens=*" %%A in ("%fldrin%\%%~G") do (
set "string=%%A"
echo !string:,=;!
rem echo !string:,=;!>>"%fldrou%\%%~nG.csv"
)
)
示例脚本中使用了一些实践(请参阅参考资料链接):
用于
~
rem
真实脚本
@echo off
SETLOCAL enableextensions disabledelayedexpansion
set "fldrin=D:\bat\files\29030979 in"
set "fldrou=D:\bat\files\29030979 ou"
md "%fldrou%" 2>nul
for /f "tokens=*" %%G in ('dir /B "%fldrin%\*.txt"') do (
echo in="%fldrin%\%%~G" out="%fldrou%\%%~nG.csv"
type nul>"%fldrou%\%%~nG.csv"
for /F "usebackq tokens=*" %%A in ("%fldrin%\%%~G") do (
set "string=%%A"
setlocal enabledelayedexpansion
echo !string:,=;!
echo !string:,=;!>>"%fldrou%\%%~nG.csv"
endlocal
)
)
ENDLOCAL
输出:应回答有关.bat
和.txt
文件位置和名称的其他问题
作为的重新运行结果获得的输入文件
for /F "tokens=*" %G in ('dir /B /S "D:\bat\files\29030979 in"') do @echo %~nxG, %date%, %time%>>"%~fG"
我是否将.bat放在目标文件夹所在的同一文件夹中?我是只写文件夹的名称还是作为目录路径?要转换的文件倾向于采用“15-03-201-A.txt”格式,这会影响结果吗?许多感谢信,在第一个答案版本a
“
中,引号的符号已丢失,行应该是('dir/B”%fldrin%\*.txt“)do(
for /F "tokens=*" %G in ('dir /B /S "D:\bat\files\29030979 in"') do @echo %~nxG, %date%, %time%>>"%~fG"