Windows コマンドを使用してバッチ ファイル スクリプトを作成していて、出現する空白スペースをそれぞれ "," で変更したいのですが、これを行う最も簡単な方法は何ですか?
3 に答える
ユーザーがテキストファイルの1行にある単語のリストで、スペースで区切られている場合。例:
one two three four
次のようにバッチファイルSpaceToComma.batを作成します。
@echo off
setlocal
for /F "tokens=* delims= " %%a in (%1) do @set data=%%a
echo %data: =,%
endlocal
次にそれを実行すると、単語がコンマで区切られます。これは、あなたの望むことですか?
C:\>SpaceToComma.bat data.txt
one,two,three,four
複数行のファイルがある場合は、次のようになります。
data.txt
one two three four
five six seven
SpaceToComma.bat
@echo off
setlocal
for /F "tokens=* delims= " %%a in (%1) do @call :processaline %%a
endlocal
goto :eof
:processaline
setlocal
set data=%*
echo %data: =,%
endlocal
goto:eof
出力
C:\>SpaceToComma.bat data.txt
one,two,three,four
five,six,seven
(遅延変数展開に!data!構文を使用して、サブルーチンなしでこれを行う賢い方法はおそらくありますが、置換構文で機能させることができませんでした。)
これがあなたの望むものでない場合は、説明してください。私がお手伝いします。
(追記:人々がそれを行うことができないと主張するバッチファイルを使用することを嬉しく思います。)
http://unxutils.sourceforge.net/から sed.exe をダウンロードして、次のコマンドを実行できます。
sed -e "s/ /,/" infile.txt >outfile.txt
データの取得方法に大きく依存しますが、For-Do コンストラクトを使用して何かを仕上げることができる場合があります。フィールド区切り文字をスペースにしてから、各トークンの間に , を使用して文字列を do に戻します。より堅牢なスクリプト言語を提案できますか? VBScript は、比較的最近のほとんどすべての Windows ボウに搭載する必要があります。