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

楼主: LIAR (玻璃做的大叔)   2014-11-07 01:07:48
这和其他的“小软件”不一样,不过是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的参数,我想请问我应该要如何修改才能达成前面说的要求?
作者: tsaiminghan (tsaiminghan)   2014-11-08 11:06:00
第二个问题,因为for循环内的变量,不能用%%http://www.robvanderwoude.com/variableexpansion.pph要用!!,且要设SETLOCAL ENABLEDELAYEDEXPANSION我一直觉得window不知道在搞什么cmd语法超难用
楼主: LIAR (玻璃做的大叔)   2014-12-01 00:04:00
同感,谢谢。

Links booklink

Contact Us: admin [ a t ] ucptt.com