我正在尝试让一个批处理文件创建另一个批处理文件,该批处理文件可以被第一个批处理文件调用。
我需要让它使用令牌输出一个for循环。对于变量,我可以在两端添加额外的%,以便将%variable%输出到文件中。然而,%%i以%i的形式出现(只有一个%符号)。我已经尝试了克拉,括号,移动骑手,引号,额外的%符号等…对于我的生活不知道如何使它只是打印%%i到文件。
示例代码:
echo FOR /f "delims=" %%i IN ('commands') DO CALL :process %%i > temp.bat但无论我怎么尝试,我最终都会得到以下结果:
echo FOR /f "delims=" %i IN ('commands') DO CALL :process %i > temp.bat我如何解决这个问题?有没有比echo > file更好的重定向文本的方法?
谢谢!
发布于 2013-07-17 13:55:57
%对%进行转义。双倍的每一个%,你想要复制字面上。
@ECHO OFF
SETLOCAL
echo FOR /f "delims=" %%i IN ('commands') DO CALL :process %%i > temp.bat
echo FOR /f "delims=" %%%%i IN ('commands') DO CALL :process %%%%i >> temp.bat
echo FOR /f "delims=" %%%%i IN ('commands') DO CALL :process %%%%i ^>^> temp.bat >> temp.bat
GOTO :EOF结果
FOR /f "delims=" %i IN ('commands') DO CALL :process %i
FOR /f "delims=" %%i IN ('commands') DO CALL :process %%i
FOR /f "delims=" %%i IN ('commands') DO CALL :process %%i >> temp.bat 行终止空间的有益经验;以这种方式生成的每一行都将包含一个终止空间,因为所需文本和文件名重定向器之间存在空格。将重定向器和文件名移到行首将仅复制实际的终端空间
>> temp.bat echo FOR /f "delims=" %%%%i IN ('commands') DO CALL :process %%%%ihttps://stackoverflow.com/questions/17690466
复制相似问题