0

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

有没有我可以运行的脚本可以重命名所有文件和文件夹,但排除 2 个文件夹和其中的文件?如果有更好的方法,我愿意接受选择。

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

4

2 回答 2

1

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

于 2012-05-24T07:01:32.470 回答
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。

于 2012-05-23T22:39:22.510 回答