2012-08-03 27 views
3

我有一个名为“IMG0001”,“IMG0002”等相机的图像集,我想将所有奇数编号的图像移动到另一个文件夹。将所有奇数编号的文件移动到一个文件夹中

如何使用批处理脚本实现此目的?

是否可以编写接受不共用前缀或数字填充的文件名的脚本?

回答

2

如果文件名符合8.3约定(基本名称< = 8个字符,不包含空格),则以下命令行将起作用(如果在批处理文件中使用百分比,则将其翻倍)。

for %F in (*1.jpg *3.jpg *5.jpg *7.jpg *9.jpg) do move "%%F" "newLocation\" 

但上面可能无法正常工作,如果名称是长或包含空格,因为长文件名可以有一个简短的名称对应的是与奇数或偶数结束。执行模式匹配时,DIR和FOR都会查看长名和短名。

因此,可以修改为不使用临时文件的kirilloid's solultion的改进版本。这种调整也将与名称,大小写混合的空间工作,文件名的.jpg以及扩展等

for /f "eol=: delims=" %F in ('dir /b /a-d *.jpg^|findstr /irc:"[13579]\.jpg$"') do move "%F" "newLocation" 
0

假设你只想得到你的标题字符串的整数部分,你必须正则表达式,并只保留号码,然后检查是否模数2返回true或false,那么你可以将它

1

example + FINDSTR /正则表达式:

DIR /B -D *.jpg | findstr "[02468][.]jpg" > %TEMP%\DIR.LST 
FOR /F %%f IN (%TEMP%\DIR.LST) DO (
move %%f new_dir 
) 
DEL DIR.LST 

我会很高兴,如果有人会告诉我,该怎么做W/O tmp文件。在linux上我习惯了xargs和反引号。

+0

+1,但看到[我的回答(HTTP:/ /stackoverflow.com/a/11804098/1012053)。除了临时文件小的不便之外,如果名称包含空格,大写字母.JPG,或者如果.jpg名称中出现多次,则答案会有问题。所有固定与小调整。 – dbenham 2012-08-03 22:30:09

0

这里是非常非技术方法:

安排在窗口中的文件,按名称排序,缩略图。

调整窗口大小,使缩略图分成两列。

使用鼠标点击窗口 - 只选择一列。

我也正是这样做与Windows 7

有一个YouTube视频有人做这显示了一个较旧的Windows版本: http://www.youtube.com/watch?v=3Kr2sTzpFY4

+0

这里不是一个真正的批处理脚本。 – grattmandu03 2014-06-04 15:09:16

+0

两列很有创意,但它假设文件名没有空白。 – MxyL 2014-06-04 15:10:03

+0

请原谅我忽略这是批量文件的请求。我曾经用QBasic可执行文件来做这类事情,我会立即创建这些可执行文件。我到达这个主题寻找一个更简单的方法来做到这一点,当我发现这个非脚本解决方案时,我回来分享它,以防其他人重复我的过程。 仅供参考对我来说,通过制作窗口三列,一个人可以选择3的倍数。您基本上使用GUI界面以几何形式对整数进行排序。 – user3707570 2014-06-05 15:07:42

相关问题