9

私はテキスト ファイルを持っています。テキスト ファイルの各行の末尾に "を追加し、" を追加するバッチ ファイルを誰かが持っているのではないかと思っていました。

たとえば、私は

1
2
3

そして私は欲しい

"1",
"2",
"3",

簡単なものを貼り付けることができれば、それは私を助けるでしょう=)

編集(コメントから@mastashake57の投稿へ):

私は窓を使っています, 誰かにそれをするように頼んでいるように感じたら, 私の謝罪, これは私が持っているものです.

@echo off 
setlocal 
set addtext=test 
for /f "delims=" %%a in (list.txt) do (echo/|set /p =%%a%addtext% & echo\ & echo) >>new.txt 

しかし、私が想定しているコマンドの一部またはそのようなものと見なされるため、コンマを配置する方法がわかりません。これは、各行のフォントにテキストを配置するだけです。

4

4 に答える 4

10
@echo off
setLocal EnableDelayedExpansion
for /f "tokens=* delims= " %%a in (input.txt) do (
set /a N+=1
echo ^"%%a^",>>output.txt
)

-ジョエド

于 2012-04-05T01:41:42.397 に答える
5

私の頭の上から、Linuxでは、次のことができます...

$ for each in `cat filename` ; do echo \"$each\", ; done >> newfilename

"1",
"2",
"3",
"4",
"5",

編集済み-Windows用なので、これでうまくいきました:

@echo off
setLocal EnableDelayedExpansion

for /f "tokens=* delims= " %%a in (filename.txt) do (
echo "%%a", >>newfilename.txt
)
于 2012-04-05T01:28:44.543 に答える
0

このスクリプトは、FORループ カウントを使用して行数FOR /LSET /P指定し、ファイルを 1 行ずつ読み取ります。

@echo off
SETLOCAL EnableDelayedExpansion

::Initialize SUB character (0x1A)
>nul copy nul sub.tmp /a
for /F %%S in (sub.tmp) do set "sub=%%S" SUB CHARACTER

::Variables
;set "lines=-1" Exclude LAST line
set "in=<CHANGE THIS>"
set "out=text.txt"

::Count lines
FOR /F tokens^=*^ delims^=^ eol^= %%L in (
'2^>nul findstr /N "^" "%in%"'
) do set /a "lines+=1"

::Read file using SET /P
>newline.tmp <"!in!" (
  for /L %%a in (1 1 %lines%) do (
    set "x=" For EMPTY lines
    set /p "x="
    echo("!x!",
  )
    ;set "x="
    ;echo("!x!",!sub!
)

::Trim trailing newline appended by ECHO
;copy newline.tmp /a "!out!" /b
;del sub.tmp newline.tmp

行数を数える簡単な方法は、この回答で説明されています。DosTips
で説明されているよう に、SUB文字 (0x1A) を利用して末尾の改行を削除します。それらをトリミングしたくない場合は、 で始まる行をコメントアウトしてください。;

于 2020-04-25T10:06:58.063 に答える