找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 22994|回复: 3

[文件操作] 批处理如何把文本中的每行的名字命名给文件?

[复制链接]
发表于 2015-1-2 14:45:43 | 显示全部楼层 |阅读模式
我有一个文本文档,名字为:我的文档.txt  里面的内容为:
张三
李四
王五
张飞
关宇
刘备
要把文本中的这些名字命名给数目对应的jpg文件,就按照图片的顺序,依次命名。比如 :张三命名给第一个图片,李四命名给第二张图片,这样下去,如何写代码。除了 这样写:
  1. @echo off&setlocal enabledelayedexpansion
  2. (for /f "delims=" %%i in ('dir /b *.jpg') do (
  3.     set /p strJPG=
  4.   echo ren "%%i" "!strJPG!%%~xi"
  5. ))<我的文档.txt
  6. pause
复制代码
还有别的写法吗??谢谢
发表于 2015-1-2 18:42:27 | 显示全部楼层
这个写法不是挺好么,有啥问题吗?
发表于 2015-1-3 12:14:24 | 显示全部楼层
这种写法还真有点让人迷惑。如果FOR中有两行读入语句:
set /p strJPG=
set /p strJPG1=
for应该是依次两行两行读入吧

如果这样写
set /p strJPG=<1.txt
应该是始终读入第一行吧。
发表于 2015-1-3 17:04:07 | 显示全部楼层
本帖最后由 慕夜蓝化 于 2015-1-3 17:06 编辑

不啊,这个写法真挺好的,这条命令打破了我一直认为只有for/f才能读取文本的观念,我也是第一次见到这种写法,一直以来都为set/p只能读取文本第一行的内容而感到遗憾,没想到一对括号就完美的解决了这个问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 21:30 , Processed in 0.017817 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表