我试图重命名文件夹内的所有文件(所有的.exe文件)。 我想用下划线replace所有的空格,例如:“qwe qwe qwe asd.exe”到“qwe_qwe_qwe_asd.exe”。
我需要使用命令行来执行此操作。 我尝试了很多可能的解决scheme,我在互联网上甚至在这个网站上都find了,但是我无法完成它。
我也需要在“一行”/“一个命令”中做到这一点,但我会接受所有的工作答案。
谢谢!
一个班轮
cmd /e:on /v:on /c "for %f in ("* *.exe") do (set "n=%~nxf" & set "n=!n: =_!" & ren "%~ff" "!n!" )"
产生一个cmd的实例,扩展和延迟扩展启用,并为每个名称空间的exe文件,用下划线替换空格,并用新名称重命名该文件
改编自这里:
https://stackoverflow.com/a/16129486/2000557
@echo off Setlocal enabledelayedexpansion Set "Pattern= " Set "Replace=_" For %%a in (*.exe) Do ( Set "File=%%~a" Ren "%%a" "!File:%Pattern%=%Replace%!" ) Pause&Exit
用上面的内容创建一个批处理文件( *.bat
)。 将该批处理文件放置在具有所有.exe的文件夹中,并在运行时用空格替换下划线。
使用forfiles:
forfiles /m *.exe /C "cmd /e:on /v:on /c set \"Phile=@file\" & if @ISDIR==FALSE ren @file !Phile: =_!"
在forfiles
之后添加/s
以递归子文件夹。
简单如:
set filename=qwe qwe qwe asd.exe set filename=%filename: =_%
设置数据=%日期:〜6,4%%日期:〜3,2 %%日期:〜0.2%_%时间:〜0.2%时间:〜3.2%时间:〜6, 2%设定数据=%数据:= 0%