1
通常、複数のcsvファイルを組み合わせるには、バッチコマンド%〜dp0を入力して現在の作業ディレクトリを取得します。 &が内部コマンドまたは外部コマンドとして認識されなかった後にパスを示す '&'の後にバッチファイルを壊す現在の作業ディレクトリを取得中にアンパサンド(&)シンボルが発生しました。アンパサンド(&)をバッチファイルの現在の作業ディレクトリ%〜dp0からエスケープするには
は君たちのいずれかの&を特定し、(これは&を脱出し、バッチファイルを実行することができますよう)& ^に置き換えることで、私の下のスクリプトを変更して私を助けてください。あなたの提案のいずれかが評価されます。ここで
は私のコードです:
@echo off
ECHO Set working directory
pushd %~dp0 - How to escape & in this line???
ECHO Deleting existing combined file
del combined.csv
setlocal ENABLEDELAYEDEXPANSION
REM set count to 1
set cnt=1
REM for each file that matches *.csv
for %%i in (*.csv) do (
REM if count is 1 it's the first time running
if !cnt!==1 (
REM push the entire file complete with header into combined.csv - this will also create combined.csv
for /f "delims=" %%j in ('type "%%i"') do echo %%j >> combined.csv
REM otherwise, make sure we're not working with the combined file and
) else if %%i NEQ combined.csv (
REM push the file without the header into combined.csv
for /f "skip=1 delims=" %%j in ('type "%%i"') do echo %%j >> combined.csv
)
REM increment count by 1
set /a cnt+=1
)
cmd \k
マイケルの提案に感謝しています。今、私は '&' –
@ NarendraPamuruから脱出することができました。これが助けになったら、その横にある灰色のチェックマークをクリックして回答を受け入れてください。 – geisterfurz007
PUSHDではなくCDを使用する場合は、 '\ D'オプションを含める必要があります。 – dbenham