批处理:如何批量删除文件夹名字中的部分字符?

比如;我有150个文件夹,每个文件夹的名字都是“文件1”“文件2”……,我想把文件夹名字中的“文件”(文件和空格)删掉,怎么办,但是不改变文件夹内部的文件。... 比如;我有150个文件夹,每个文件夹的名字都是 “文件 1” “文件 2”……,我想把文件夹名字中的“文件 ”(文件和空格)删掉,怎么办,但是不改变文件夹内部的文件。 展开
 我来答
杨伶滑文君
2019-12-06 · TA获得超过3783个赞
知道大有可为答主
回答量:3199
采纳率:28%
帮助的人:251万
展开全部
for
/f
"tokens=1-2
delims=
"
%%a
in
('dir/b
文件*.*')
do
ren
"%%a
%%b"
%%b
保存为批处理,放到文件夹所在目录执行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qop_dob
2024-04-30 · TA获得超过1.5万个赞
知道大有可为答主
回答量:1.3万
采纳率:79%
帮助的人:3951万
展开全部
不清楚你的实际文件/情况,仅以问题中的样例/说明及猜测为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI/GB2312,跟要处理的多个文件夹放一起双击运行
<# :
cls&echo off&cd /d "%~dp0"&mode con lines=5000
rem 将当前目录下多个子文件夹名称中的指定字符内容删除
path %SYSTEMROOT%\System32\WindowsPowerShell\v1.0;%path%
set #=Any questions&set _=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%_% %z%
set "self=%~f0"
powershell -NoProfile -ExecutionPolicy bypass "Get-Content -literal '%~f0'|Out-String|Invoke-Expression"
echo;%#% +%$%%$%/%_% %z%
pause
exit
#>
$keyword='文件';
$reg=[regex]::Escape($keyword)+'\s*';
$b=[Convert]::FromBase64String("IC0tPiA=");
$c=[Text.Encoding]::Default.GetString($b);
$self=get-item -literal $env:self;
$current=$self.Directory.FullName.trimend('\');
$folders=@(dir -literal $current|?{$_ -is [System.IO.DirectoryInfo]});
for($i=0;$i -lt $folders.length;$i++){
    $base=$folders[$i].Name -replace $reg,'';
    if($base -ne $folders[$i].Name){$folders[$i].Name+$c+$base}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式