@echo off for /f "tokens=1" %%i in ("1 2 3 4 5") do ( echo %%i ) 只输出了一个tokens=1
时间: 2023-12-06 08:40:16 浏览: 160
这个问题是因为命令行默认使用空格作为分隔符,所以 "1 2 3 4 5" 被解析成了一个参数,而不是多个参数。可以尝试将分隔符改为其他字符,比如逗号:
```
@echo off
for /f "tokens=1 delims=," %%i in ("1,2,3,4,5") do (
echo %%i
)
```
这样就可以正确输出 1 到 5 的数字了。
相关问题
@echo offsetlocal EnableDelayedExpansionset dirPath=<您的目录路径>for /f "tokens=* delims=" %%a in ('dir /b /a-d "%dirPath%"') do ( set fileSize=%%~za set /a fileSizeKB=!fileSize!/1024 echo %%a !fileSizeKB! KB)pause
这段代码是一个 Windows 批处理脚本,用于输出指定目录下所有文件的文件名和文件大小(单位为 KB)。
脚本中的变量 `dirPath` 可以根据你的需求替换为指定的目录路径。
`for /f "tokens=* delims=" %%a in ('dir /b /a-d "%dirPath%"') do` 这一行代码是一个 for 循环,用于遍历指定目录下所有非目录文件。`dir /b /a-d "%dirPath%"` 用于获取指定目录下所有非目录文件的文件名,`/b` 参数表示只输出文件名而不显示其他信息,`/a-d` 参数表示只输出非目录文件。
`set fileSize=%%~za` 这一行代码用于获取文件大小,`%%~za` 表示获取当前循环到的文件的文件大小。`set /a fileSizeKB=!fileSize!/1024` 将文件大小转换为 KB 并存储到变量 `fileSizeKB` 中。
`echo %%a !fileSizeKB! KB` 输出当前循环到的文件名和文件大小。
最后的 `pause` 语句用于暂停脚本的执行,等待用户按下任意键继续。
@echo off setlocal set "filename=C:\WO\Autoaz.ini" set "jxm=" if not exist "%filename%" ( echo 文件不存在: %filename% exit /b ) for /f "usebackq tokens=*" %%A in ("%filename%") do ( echo %%A | findstr /i /b /c:"jxm=" > nul if not errorlevel 1 ( for /f "tokens=2 delims==" %%B in ("%%A") do ( set "jxm=%%B" ) ) ) IQI_x64.exe "%jxm%|1||AutoSure" endlocal exit这段代码只检查了C盘里面的WO\Autoaz.ini文件,我想改成检查所有磁盘里面的WO\Autoaz.ini文件,
你可以尝试使用一个for循环来遍历所有磁盘,然后再在每个磁盘中检查WO\Autoaz.ini文件是否存在。修改后的代码如下:
@echo off
setlocal
set "filename=WO\Autoaz.ini"
set "jxm="
for %%D in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
if exist "%%D:\%filename%" (
for /f "usebackq tokens=*" %%A in ("%%D:\%filename%") do (
echo %%A | findstr /i /b /c:"jxm=" > nul
if not errorlevel 1 (
for /f "tokens=2 delims==" %%B in ("%%A") do (
set "jxm=%%B"
)
)
)
)
)
if "%jxm%" == "" (
echo 所有磁盘中都没有找到 %filename%
exit /b
)
IQI_x64.exe "%jxm%|1||AutoSure"
endlocal
exit
这段代码会遍历从A到Z的所有磁盘,如果在某个磁盘中找到了WO\Autoaz.ini文件,则检查文件中的jxm值,并执行IQI_x64.exe。如果所有磁盘中都没有找到WO\Autoaz.ini文件,则输出提示信息并退出。
阅读全文