我有一个奇怪的问题。我以为我的代码三天前就可以用了,我对此很确定。但是从昨天开始,它给了我错误,而源代码没有任何变化。
我想将一个文本文件中的文本复制到另一个文本文件中,但不能有空格。因此,如果我的原始文本文件具有3个空格(因此仅包含制表符或“”的行),则新文件中应为0。这是我的代码:
REM Create a Copy of the File without blank spaces
for /F "delims=" %%J in (%SrcFile%) do (
setlocal enabledelayedexpansion
set row=%%J
if defined row echo.!row!>>%SrcFile%Backup.bak
endLocal
但是在备份文件中,它仍然给我空格,即使我认为空格已被“如果定义的行”部分消除了。我似乎不明白这里出了什么问题,因为我认为for /f
会跳过空格?
感谢您的帮助!
答案 0 :(得分:1)
答案 1 :(得分:0)
如Compo所述,包含空格和/或制表符的行并不为空。
每行,删除空格和制表符。如果还剩下任何内容,请打印整行。
诀窍是第一个set
命令:set "row=%%a<SPACE><TAB>"
给后面的set
命令至少要删除的内容(否则您以<SPACE>=
或{{1结尾}},而不是一个空字符串
<TAB>=