Re: [请问] for要如何只抓第一行&使用者输入?

楼主: piligo (霹雳狗)   2014-11-07 08:32:20
※ 引述《LIAR (玻璃做的大叔)》之铭言:
: 这和其他的“小软件”不一样,不过是windows内建的应该OK吧?
: for /f "tokens=1,1,1" %%a in ('dir /b /o-g-d img*.*') do (
: set /p newname=请输入新档名:
: ren %%a "%newname%.jpg"
: )
: 我希望能够找出最新的一个img*.*档案,并且提示使用者输入新档名,
: 把这个档案改成输入的新档名。
: 目前遇到两个问题:
: 1.他不会只抓第一个档案,而是处理完第一个还会继续第二个,一直做到
: 没有符合的档名为止。
: 2.set /p的参数没有用,会被当成空白。如果是直接到命令列执行这个script,
: 则是会记到前一次执行输入的参数。
: 换句话说第一次输入"1",newname=空白,第二次执行输入"2",newname=1,
: 以此类推。
: 我没有正式学过for的参数,我想请问我应该要如何修改才能达成前面说的要求?
下面可以达成您要的效果,完全不用for
dir /b /o-g-d img*.* >check.txt
set /p a=<check.txt
set /p b=请输入新档名:
ren "%a%" "%b%.jpg"
del check.txt
作者: LIAR (玻璃做的大叔)   2014-11-07 21:39:00
set /p a=<check.txt这步只得到a=list.txt耶?
楼主: piligo (霹雳狗)   2014-11-07 22:05:00
您不是只要搜寻img*.* 为何会出现list.txt ???
作者: LIAR (玻璃做的大叔)   2014-11-08 00:27:00
啊!了解了,我测试时用*.*所以找到自己(我用list.txt),加上原本的img*.*就没有这问题,谢谢你。

Links booklink

Contact Us: admin [ a t ] ucptt.com