我有一个包含100张图像的文件夹。所有图像都以这种方式命名:
FOLDER
- MY COOL IMAGE.JPG
- MY COOL IMAGE 2.JPG
- MY COOL IMAGE 3.JPG
...
我需要为每个图像创建一个文件夹,女巫的名称与对应图像的名称相同。
FOLDERS
-my-cool-image
- MY COOL IMAGE.JPG
-my-cool-image-2
- MY COOL IMAGE 2.JPG
-my-cool-image-3
- MY COOL IMAGE 3.JPG
...
我在Windows上,正在寻找脚本来自动执行此操作。
如果有人可以帮助您提供一些链接和/或示例代码,我将不胜感激。
谢谢。
这行代码是一个非常简单的解决方案。
FOR %%G IN (*.jpg) DO MD "%%~nG"
该~n
修饰符告诉它给你的基本文件名不带扩展名。
要将文件移动到新目录,只需使用move命令。
FOR %%G IN (*.jpg) DO (
MD "%%~nG"
move "%%~G" "%%~nG\"
)
这是带有小写字母和连字符的最终代码。
@echo off
setlocal enabledelayedexpansion
For %%G IN (*.jpg) DO (
set "str=%%~nG"
set "str=-!str: =-!"
call :toLower str
MD "!str!"
move "%%~G" "!str!\"
)
GOTO :EOF
:toLower str -- converts uppercase character to lowercase
:: -- str [in,out] - valref of string variable to be converted
:$created 20060101 :$changed 20080219 :$categories StringManipulation
:$source https://www.dostips.com
if not defined %~1 EXIT /b
for %%a in ("A=a" "B=b" "C=c" "D=d" "E=e" "F=f" "G=g" "H=h" "I=i"
"J=j" "K=k" "L=l" "M=m" "N=n" "O=o" "P=p" "Q=q" "R=r"
"S=s" "T=t" "U=u" "V=v" "W=w" "X=x" "Y=y" "Z=z" "Ä=ä"
"Ö=ö" "Ü=ü") do (
call set "%~1=%%%~1:%%~a%%"
)
EXIT /b
我完全忘记/L
了该DIR
命令的选项。这大大缩短了代码。
@echo off
setlocal enabledelayedexpansion
For /f "delims=" %%G IN ('dir /A-D /B /L *.jpg') DO (
set "str=%%~nG"
set "str=-!str: =-!"
MD "!str!"
move "%%~G" "!str!\"
)
我将添加更多代码示例,因为将其他代码添加到您所问的另一个问题非常容易。
要在新创建的目录中创建一个空文本文件,将只是一行额外的代码。您使用大于符号的重定向运算符将输出发送到文件。我们将在NUL设备上使用type命令来创建一个空文件。您可以根据需要命名文件。
type nul>"!str!\file.txt"
如果要在文件中放入内容,请使用ECHO
命令。
echo I want this in the text file>"!str!\file.txt"
在MOVE
命令之后使用这些示例之一。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句