[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 【已解决】求问批处理for如何把数据枚举成一行一行的?

本帖最后由 hztccy 于 2024-2-22 22:37 编辑

这是我的写的代码
  1. @echo off
  2. Setlocal enabledelayedexpansion
  3. for /f "skip=1 delims=" %%i in ('wmic printer list brief') do (echo %%i)
  4. pause
复制代码
我想通过for把命令wmic printer list brief获取到的打印机信息按一行一行输入

然后我可以通过set /p的选择方式给出道其他其他代码使用

类似一个这样的代码操作
  1. setlocal enabledelayedexpansion
  2. set 序号=1
  3. for /f "delims=" %%i in ('dir /b "路径"') do (
  4. set 文件[!序号!]=%%~nxi
  5. echo -----------------------------
  6. echo  ^>^>^>(!序号!)%%i
  7. set /a 序号+=1)
  8. echo -----------------------------
  9. echo.
  10. set /p 选择=-输入序号:
  11. if not "%选择%"=="" (操作) else (goto :返回)
  12. cls
  13. set 序号=1
  14. for /f "delims=" %%i in ('dir /b "C:\123"') do (
  15. set 文件[!序号!]=%%~nxi
  16. echo -----------------------------
  17. echo  ^>^>^>(!序号!)%%i
  18. set /a 序号+=1)
  19. echo -----------------------------
  20. echo.
复制代码

回复 1# hztccy


请参考Q-04把bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "n=0"
  4. for /f "tokens=1* delims==" %%a in ('wmic printer get name /value ^| find "Name="') do (
  5.     set "Printer_!n!=%%b"
  6.     set /a n+=1
  7. )
  8. set Printer_
  9. set /p InuputNum=Choose your printer number:
  10. echo,!Printer_%InuputNum%!
  11. pause
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复  hztccy


请参考Q-04把bat文件保存为ANSI编码:
Batcher 发表于 2022-7-1 09:28



    非常感谢版主大大,主要我个人对for里面的set /a 和 !这类搞不明白,非常感谢

TOP

本帖最后由 hztccy 于 2022-7-3 12:15 编辑
回复  hztccy


请参考Q-04把bat文件保存为ANSI编码:
Batcher 发表于 2022-7-1 09:28



    我把结果输出给rundll32 printui.dll,PrintUIEntry出现无法调用



下图输出的名称给不到使用

TOP

回复 2# Batcher


    版主大大,有空吗?帮我看看怎么处理

TOP

回复 4# hztccy
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "n=0"
  4. for /f "tokens=1* delims==" %%a in ('wmic printer get name /value ^| find "Name="') do (
  5.     for /f "delims=" %%c in ("%%b") do (
  6.         set "Printer_!n!=%%c"
  7.     )
  8.     set /a n+=1
  9. )
  10. set Printer_
  11. set /p InuputNum=Choose your printer number:
  12. echo,!Printer_%InuputNum%!
  13. pause
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 6# Batcher


    哥,能我帮我解释一下原理吗?后面的第二次循环没看懂

TOP

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表