0

私は、同じ名前で拡張子が異なる2つのファイルを変換するバッチファイルを求めています。

test file.dat
test file.txt

これらのファイルを区切り記号で結合したい (私は ~ を使用しました)

新しいファイルに新しい拡張子の名前を付けたいが、元の名前を保持したい。これは管理したが、使用するファイルの大部分にはスペースが含まれており、スペースで動作させることができる

私がこれまでに持っているコード:

type *.dat > new.andy
echo. >> new.andy
echo ~ >> new.andy
type *.txt >> new.andy
for /F %%a in ('dir /b *.dat') do set FileName=%%~na
REN new.andy %FileName%.andy

これまでのところ、スペースを含むフルネームでファイルの名前を変更することとは別に、スクリプトが動作するようになりました。これまでのところ、最初のスペース、つまり test.andy までしか移動しません

4

2 に答える 2

0

次のようなものから始めることができます。

@echo off

for /f "tokens=*" %%a IN ('dir /b *.dat') do (
  type "%%a" >  "%%~na.andy"
  echo.      >> "%%~na.andy"
  echo ~     >> "%%~na.andy"
)

for /f "tokens=*" %%a IN ('dir /b *.txt') do (
  type "%%a" >> "%%~na.andy"
)

これにより、すべての*.datファイルがすべてのファイルと結合*.txtされ、結合されたファイルの名前は.andy.

求めているものとファイルの編成方法によっては、これを改善できます。

于 2013-03-13T23:04:44.907 に答える
0

以下をテストします

type "*.dat" > new.andy
echo. >> new.andy
echo ~ >> new.andy
type "*.txt" >> new.andy
for /F %%a in ('dir /b *.dat') do set FileName=%%~na
REN new.andy %FileName%.andy
于 2013-03-13T22:41:16.157 に答える