English 中文(简体)
在文件夹中重新命名文件以测试相依性
原标题:renaming files in folders to test for dependencies

我被绑在网络驱动器上, 连接速度极其缓慢( 15 kb/ s) 。 我正在删除大多数文件, 但不想打破包含声明的少数文件。 这些是企业应用程序的文件( 主要是以 ColdFusion 撰写的 ) 。 我的想法是将所有文件名称前缀一个 _, 以测试如果我要继续处理的少数文件是否被弄乱。 我已经搜索了我要保存的文件代码, 以查找包含声明, 这只是在启动前测试 。

是否有一个我可以运行的脚本可以重命名所有文件和文件夹, 但排除两个文件夹和其中的文件? 如果有更好的方法, 我可以打开选项 。

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

最佳回答

我建议附加一个 . /code > 的扩展名, 而不是将名称前缀为 。 这样可以更容易撤销重命名 。

@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"


EDIT:
The first script to rename the files can be made faster by renaming all files in a directory with a single REN command.

@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*.*" *.*._
)

恢复这些名称的第二个脚本必须继续逐个重命名每个文件。

我还在所有剧本中加入了SETLOCOL。

问题回答

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





相关问题
complex batch replacement linux

I m trying to do some batch replacement for/with a fairly complex pattern So far I find the pattern as: find ( -name *.php -o -name *.html ) -exec grep -i -n hello {} + The string I want ...

How to split a string by spaces in a Windows batch file?

Suppose I have a string "AAA BBB CCC DDD EEE FFF". How can I split the string and retrieve the nth substring, in a batch file? The equivalent in C# would be "AAA BBB CCC DDD EEE FFF".Split()[n]

How to check which Operating System?

How can I check OS version in a batch file or through a vbs in an Windows 2k/2k3 environment ? You know ... Something like ... : "If winver Win2k then ... or if winver Win2k3 then ....