0

接続速度が途方もなく遅い(天気の良い日は15 kb / s)ネットワークドライブに接続しています。ほとんどのファイルを削除していますが、includeステートメントを含むいくつかのファイルを壊したくありません。これらはエンタープライズアプリ用のファイルです(主にColdFusionで記述されています)。私の考えは、すべてのファイル名の前に「_」を付けて、残しておきたいいくつかのファイルが台無しになっていないかどうかをテストすることです。保持したいファイルのコードでincludeステートメントを既に検索しました。これは、ライブにプッシュする前にテストするためのものです。

すべてのファイルとフォルダーの名前を変更し、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\*.*" *.*._
)

名前を元に戻す2番目のスクリプトは、引き続き各ファイルの名前を個別に変更する必要があります。

また、すべてのスクリプトにSETLOCALを追加しました。

于 2012-05-23T22:39:22.510 に答える