use*_*191 0 batch-file batch-processing
我想在批处理文件中嵌套for循环以删除回车.我尝试过就像你可以看到下面但它不起作用.
@echo off
setLocal EnableDelayedExpansion
for /f "tokens=* delims= " %%a in (Listfile.txt) do (
set /a N+=1
set v!N!=%%a
)
for /l %%i in (1, 1, %N%) do (
echo !v%%i!
for /r "tokens=* delims=" %%i in (windows.cpp) do (
echo %%i >> Linux11.cpp
)
)
pause
Run Code Online (Sandbox Code Playgroud)
在这里,我想检查一下windows.cpp.如果它的工作,我喜欢改变Windows .cpp与!v %%我!
您不能在批处理文件中执行此操作.您无法寻址或写入任意字符.Windows上的每个工具通常都会确保输出Windows换行符(即CR + LF).有些人可以很好地阅读 Unix风格的换行符,这就是为什么你可以轻松地从它们转换.但对他们来说是不可能的.
另外需要注意的是:源代码文件通常包含空白行(至少是我的),以提高可读性.for /f跳过空行,这就是为什么你要为那里的人类读者修改文件的原因.请不要这样做.
至于你的问题:当嵌套两个循环时,你必须确保它们不使用相同的循环变量.给我看一个像你写的代码实际工作的语言.
就像是
for /l %%i in (1, 1, %N%) do (
echo !v%%i!
for /f "tokens=* delims=" %%l in ("!v%%i!") do (
rem do whatever you want to do with the lines )
)
Run Code Online (Sandbox Code Playgroud)
应该工作得更好(你错过了最后的右括号).要记住:如果你想使用某个变量而不是固定的文件名,它肯定有助于用该变量替换那个固定的文件名.