我在某个文件夹“ABC”中有几个.pdf 和 .tex 文件。
它们均由该计划命名
C01S02_Word.pdf
C03S02SS01_Description_random_words.pdf
C04S01SS02_More_words.pdf
and so forth
C在这个方案中代表章节,年代部分和SS子节。因此,在文件夹 ABC 中,我还有每个章节的文件夹,简称为C01,二氧化碳等等。在每个章节文件夹中,我都有一个名为图片。
有人可以写一个批处理脚本,以便我可以移动所有 .tex 和 .pdf 文件到各自的图片-文件夹,C04S01SS02_More_words.pdf
会被移动到C04/Pictures
等等C01S02_Word.pdf
吗C01/Pictures
?
笔记:我当然已经在谷歌上搜索过了但到目前为止,我无法将所有这些位转换为工作脚本。我不想再进行 T&E 运行了。:/
答案1
创建此批处理文件:
@echo off
for %%F in (*.pdf *.tex) do call :subr "%%F"
exit /b
:subr
set filename=%1
move %1 %filename:~1,3%\Pictures
exit /b
笔记:
for %%F in (*.pdf *.tex) do …
*.pdf
对每个与 或匹配的文件名执行一次以下语句*.tex
,并将其%%F
设置为文件名。call :subr "%%F"
调用脚本的下面三行,其中第一个参数(%1
)设置为"%%F"
(文件名,带引号)。exit /b
退出脚本而不会吹走命令提示符窗口。set filename=%1
将文件名参数复制到filename
变量中。move
移动文件。%variable:~start,len%
取 的指定子字符串(第一个字符是 #0),所以的前三个字符也是。(计数从 0 开始;我使用 1 来跳过。)%variable%
%filename:~1,3%
%filename%
"
exit /b
从子程序返回。