将批处理文件的输出发送到当前目录

将批处理文件的输出发送到当前目录

我有一个.bat脚本,可以将一些文本文件合并为一个大文件。我希望生成的文件转到当前目录,而不是硬编码路径。

这是我的脚本:

@echo off
:loop
if ($1) == () goto end
more +9 %1% >> %cd%\bigfile.txt
shift
goto loop
:end

我已将其保存在“发送到”文件夹中,因此我可以选择 DirectoryA 中的一堆文件,然后右键单击并“发送到”我的批处理脚本。这可行,但我希望 bigfile.txt 与所有小文件位于同一目录中。有什么想法吗?

答案1

@echo off
    setlocal enableextensions disabledelayedexpansion

:loop
    if "%~1"=="" goto :eof
    more +9 "%~1" >> "%~dp1bigfile.txt"

    shift
    goto loop

将输出附加到与bigfile.txt源文件位于同一驱动器和路径的文件 ()

答案2

可以通过替换来实现

%cd%\bigfile.txt

%cd:~0,2%%~p1

它获取到父目录的路径字符串(指定驱动器)

相关内容