我有一个包含纯字母和数字字符串的文本文件。 我的目的是为每个数字字符串添加前缀0,当且仅当它们以9开头并保留原始文件中的其余字符串以创建修改后的文件。 Foreg:
original file modified file
1 watsongone 4 watsongone
2**978654321** 5 **0978654321**
3 087654567 6 087654567
I was trying to solve this using windows batch file. Wondering why the following doesn't work :
setlocal enabledelayedexpansion
for /f "tokens=*" %%A in (ns.txt) do ( if /I %%A EQU "9" CALL:Sub %%A
echo %%A >>z.txt )
goto:eof
:Sub
set B=0%1
echo !B! >>z.txt
goto:eof
答案 0 :(得分:0)
它是%%A
无法正常工作的部分 - 它确实有效,但不像您似乎想的那样。
我们假设,987654321
是if /i 987654321 equ "9"
。那么您的比较是:
for /f "tokens=*" %%A in (ns.txt) do CALL:Sub %%A
goto:eof
:Sub
set A=%1
REM next line: compare first letter of %A% :
if "%A:~0,1%"=="9" (set B=0%1) else set B=%1
echo %B% >>z.txt
goto:eof
显然不是。
我会把比较推到你的子功能中:
pygame.init()
display = (800,600)
pygame.display.set_mode(display, DOUBLEBUF|OPENGL)
myTex = pygame.image.load('0.png')
myTex = myTex.convert_alpha()
myTexData = pygame.image.tostring(myTex, 'RGBA', 1)
myTexID = 0
glGenTextures(1, myTexID)
glBindTexture(GL_TEXTURE_2D, myTexID)
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, myTex.get_width(), myTex.get_height(), 0, GL_RGBA, GL_UNSIGNED_BYTE, myTexData)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST)
(你不需要延迟扩展)
这不是最好的方法,但很容易理解。
答案 1 :(得分:0)
男人啊!上帝知道有多少人自杀试图找出使该死的计算机理解你想要的语法。我设法解决了我的问题并获得了新的见解。
setlocal enabledelayedexpansion
for /f "tokens=*" %%A in (ns.txt) do ( set C=%%A
If /I "!C:~0,1!" equ "9" (echo 0!C! >>j.txt) else (echo !C! >>j.txt)
)
goto:eof
当你在表达式中使用负数时,祝福比较操作“equ”是问题,即“NOT”你使用“==”否则你必须使用“equ”或者你的处理器发疯并反过来驱使你在墙上