Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何修改txt的内容并在新文件夹中另存为csv_Csv_Batch File_Converter - Fatal编程技术网

如何修改txt的内容并在新文件夹中另存为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

我是新来的,并尝试搜索论坛等的答案,并已部分有,但需要帮助,以达到最后

它是什么-我需要一个程序-一些基本的东西,例如一个.bat文件,从文件夹a中获取.txt文件,修改文件内容(用分号替换所有逗号)并将其移动到文件夹B,但作为一个.csv文件而不是文本文件

最多有20个小文件需要“转换”

我发现下面的代码可以用替换所有;并保存为.csv文件

    @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"