Yay*_*aya 3 windows scripting batch-file
我想在一个大目录中处理批处理操作.实际上我有该进程的批处理脚本.但在这里,我有一个问题.一些目录名,文件名包含""(空格字符).因此在批处理操作中,这些名称作为2个参数传递.那些线不起作用.所以我想用"_"重命名""以克服这个问题.
例:
process/MyDirectory/Ola和Me/Private/TopSecretPictures/
这给出了错误.下面的一个工作正常
process/MyDirectory/Ola和Me/Private/TopSecretPictures
我的目标是:转换| Ola和我| >> | Ola_And_Me递归
:)
提前致谢 ..
以下脚本以递归方式重命名所有文件和目录,从给定目录开始,将空格转换为下划线.
spaces_to_underscores.bat 资源:
@echo off
setlocal
for /r "%~1" %%t in (.) do (
for /f "usebackq tokens=*" %%f in (`dir /b/a-d "%%~t" 2^>nul:`) do (
call :proc "%%~f" "%%~t"
)
for /f "usebackq tokens=*" %%d in (`dir /b/ad "%%~t" 2^>nul:`) do (
call :proc "%%~d" "%%~t"
)
)
exit /b 0
:proc
set fn=%~1
if "%fn: =_%"=="%fn%" exit /b 0
set fn=%~2\%fn: =_%
move "%~2\%~1" "%fn%" >nul:
exit /b 0
Run Code Online (Sandbox Code Playgroud)
用法:
spaces_to_underscores "My Directory"
Run Code Online (Sandbox Code Playgroud)
鉴于此目录结构
My Directory
Ola and Me
Private
TopSecretPictures
Run Code Online (Sandbox Code Playgroud)
它会将文件夹" Ola and Me" 重命名为" Ola_and_Me",并将任何文件重命名为" Photo 001.jpg"至" Photo_001.jpg".起始目录" My Directory"不会被重命名.
警告:不要在标准Windows目录上运行此脚本,例如" C:\Documents and Settings"或" C:\Program Files"或" My Documents"或" Application Data".这里没有"撤消"功能.确保你有备份.
| 归档时间: |
|
| 查看次数: |
5314 次 |
| 最近记录: |