我想将变量与字符串连接起来。
在第 7 行到第 11 行中,我尝试连接 !somevariable!使用字符串或使用 %%P 变量。
但这似乎不起作用。
IE。当前文件夹中有文件 0_1_en.pdf。
该脚本将文件名快捷方式设置为第一位数字。
之后我想用字符串创建一个新变量,例如:
"GEN 0" where 0 is the !sPDFName!
完整代码:
1 SETLOCAL EnableDelayedExpansion
2 for /f "delims=" %%P in ('dir /b *.pdf') do (
3 SET "sPDFName=%%~nxP"
4 echo "!sPDFName:~0,1!"
5 IF "!sPDFName:~0,1!"=="1" (SET "sPDFName=!sPDFName:~0,1!")
6 IF "!sPDFName:~0,1!"=="0" (SET "sPDFName=!sPDFName:~0,1!")
7 SET tempStr=GEN !sPDFName!
8 SET myvar=!myvar! %%P
9
10 echo "%myvar%"
11 echo "%tempStr%"
12 ::echo "!sPDFName!"
13 pause
14 for /f "delims=" %%H in ('dir /b *.html') do (
15 IF "!sPDFName:~-0!"=="!%%H:~0,1!" echo %%H
16 )
17 )
连接有效!但你的回声失败了。
当您处于命令块(括号)中时,所有百分比变量都会在执行该块之前展开,因此输出echo "%myvar%"
是进入 FOR 循环之前 myvar 的内容。
但你已经知道正确的方法,使用延迟扩展(与!
)
所以你的代码应该看起来像
SETLOCAL EnableDelayedExpansion
for /f "delims=" %%P in ('dir /b *.pdf') do (
SET "sPDFName=%%~nxP"
echo "!sPDFName:~0,1!"
IF "!sPDFName:~0,1!"=="1" (SET "sPDFName=!sPDFName:~0,1!")
IF "!sPDFName:~0,1!"=="0" (SET "sPDFName=!sPDFName:~0,1!")
SET tempStr=GEN !sPDFName!
SET myvar=!myvar! %%P
echo "!myvar!"
echo "!tempStr!"
::echo "!sPDFName!"
pause
for /f "delims=" %%H in ('dir /b *.html') do (
IF "!sPDFName:~-0!"=="!%%H:~0,1!" echo %%H
)
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)