我希望在我的文件中包含以下字符串。
#define Test "c:drive\folder\test1.txt"
在这里,我基本上把这个文件夹中的* .txt文件(文件名一直在变化)。
我使用以下代码:
DEL Listfile.txt
echo | set /p="#define Test "c:drive\folder\""> Listfile.txt
dir /B *.txt >> Listfile.txt
然而,问题是文件名test1.txt
是在"
之后,例如
#define Test "c:drive\folder\"test1.txt
我找不到另一种方法来结束在"
。
答案 0 :(得分:1)
试试这个:
@echo off
DEL Listfile.txt
set char="
for /F "delims==" %%d in ('dir /B *.txt') DO (
echo | Set /P="#define Test %char%c:drive\folder\%%d%char%">>Listfile.txt
echo.>>Listfile.txt
)
答案 1 :(得分:0)
GOTO 0和payeli的答案的混合。
del Listfile.txt
for /F "delims=" %%d in ('dir /B *.txt') DO (
> Listfile.txt echo #define Test "c:drive\folder\%%d"
)
这里有必要使用FOR / F循环,就像在另一种情况下(GOTO 0的解决方案)一样,FOR循环在第一行被回显之后也可能找到Listfile.txt
。
FOR / F将起作用,因为它在DO部分执行之前首先读取dir命令的完整输出。
但现在可以只使用一个回声一次输出完整的行。
如果C:\drive\folder\
也是文本文件的绝对路径,则可以将回显线更改为:
> Listfile.txt echo #define Test "%%~fd"