1-й : переменная OUTPUT
должна указывать на файл , например, следующим образом:
set "OUTPUT=C:\New folder (2)\"
set "OUTPUT=C:\New folder (2)\XYZ.csv"
2-й : предположим, что вам нужно заменить вертикальные строки запятыми:
@echo OFF
setlocal EnableExtensions DisableDelayedExpansion
rem Define constants here:
set "INPUT=%~1"
set "OUTPUT=%~2"
if not defined INPUT (
set "INPUT=D:\bat\SO\62897755.txt"
) else (
if not defined OUTPUT set "OUTPUT=%~dpn1.csv"
)
if not defined OUTPUT set "OUTPUT=con:"
echo Converting "%INPUT%" to "%OUTPUT%"
>"%OUTPUT%" (
for /F usebackq^ delims^=^ eol^= %%L in ("%INPUT%") do (
set "LINE=%%L"
setlocal EnableDelayedExpansion
set "LINE=!LINE:|=,!"
echo(!LINE!
endlocal
)
)
endlocal
exit /B
Исходные файлы ввода и вывода:
type "D:\bat\SO\62897755.txt"
name|no|columnAa|columnBb
abc1|11|columnA1|columnB!
def2|22|columnA2|columnB2
ghi3|33|columnA3|columnB3
type "D:\bat\SO\62897755.csv"
The system cannot find the file specified.
Примеры использования:
D:\bat\SO\62897755.bat
Converting "D:\bat\SO\62897755.txt" to "con:"
name,no,columnAa,columnBb
abc1,11,columnA1,columnB!
def2,22,columnA2,columnB2
ghi3,33,columnA3,columnB3
D:\bat\SO\62897755.bat "D:\bat\SO\62897755.txt" con
Converting "D:\bat\SO\62897755.txt" to "con"
name,no,columnAa,columnBb
abc1,11,columnA1,columnB!
def2,22,columnA2,columnB2
ghi3,33,columnA3,columnB3
D:\bat\SO\62897755.bat ".\SO\62897755.txt"
Converting ".\SO\62897755.txt" to "d:\bat\SO\62897755.csv"
type "D:\bat\SO\62897755.csv"
name,no,columnAa,columnBb
abc1,11,columnA1,columnB!
def2,22,columnA2,columnB2
ghi3,33,columnA3,columnB3