重命名文件夹中的文件以测试依赖项

时间:2012-05-23 21:38:27

标签: windows-7 batch-file

我连接到网络驱动器,连接速度非常慢(好日子时速度为15 kb / s)。我正在删除大多数文件,但不想破坏一些包含include语句的文件。这些是企业应用程序的文件(主要用ColdFusion编写)。我的想法是在所有文件名前加上'_',以测试我想保留的几个文件是否搞砸了。我已经搜索了我想保留的包含语句的文件代码,这只是在推送之前进行测试。

我是否可以运行一个脚本来重命名所有文件和文件夹,但不包括2个文件夹及其中的文件?如果有更好的方式我愿意接受选择。

所以我通常会删除我认为不需要的所有文件,但由于网络速度很快,需要很长时间。由于这是测试,如果我犯了一个错误,可能会有很多删除和取消删除,这就是我想重命名的原因。

2 个答案:

答案 0 :(得分:1)

如果是网络驱动器,您可能无权执行脚本。

答案 1 :(得分:0)

我建议添加._的扩展名,而不是使用_作为名称的前缀。这样可以更轻松地撤消重命名。

@echo off
setlocal
set root="X:\"
set skip1="X:\folder1\"
set skip2="X:\folder2\"
for /r %root% %%F in (*) do (
  if /i "%%~dpF" neq %skip1% if /i "%%~dpF" neq %skip2% ren "%%F" "%%~nxF._"
)

要恢复原始名称:

@echo off
setlocal
set root="X:\"
for /r %root% %%F in (*._) do ren "%%F" "%%~nF"


编辑:
通过使用单个REN命令重命名目录中的所有文件,可以更快地重命名文件的第一个脚本。

@echo off
setlocal
set root="X:\"
set skip1="X:\folder1\"
set skip2="X:\folder2\"
for /r %root% %%F in (.) do (
  if /i "%%~fF" neq %skip1% if /i "%%~fF" neq %skip2% ren "%%~F\*.*" *.*._
)

要还原名称的第二个脚本必须继续单独重命名每个文件。

我还将SETLOCAL添加到所有脚本中。