【发布时间】:2017-08-16 02:01:02
【问题描述】:
我通常通过给出批处理命令 %~dp0 来获取当前工作目录以合并多个 csv 文件。 但是我在获取当前工作目录时遇到了 & 符号,这使得批处理文件在 '&' 表示 & 之后的路径不被识别为内部或外部命令之后中断。
请你们中的任何人帮助我修改我的以下脚本以识别 & 并用 ^& 替换它(因为这可以转义 & 并运行批处理文件)。感谢您提出任何建议;
这是我的代码:
@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
【问题讨论】:
标签: batch-file special-characters