Welcome guest. Before posting on our computer help forum, you must register. Click here it's easy and free.

Author Topic: multiple renaming files  (Read 5995 times)

0 Members and 1 Guest are viewing this topic.

Blisk

    Topic Starter


    Intermediate

    Thanked: 1
    • Experience: Familiar
    • OS: Windows 7
    Re: multiple renaming files
    « Reply #15 on: December 23, 2018, 03:03:37 AM »
    Sorry still don't know where is a problem.
    If script found file copied.txt it will skip it and go further.
    If that is a problem for script than it should delete copied.txt and create it again.

    Salmon Trout

    • Guest
    Re: multiple renaming files
    « Reply #16 on: December 23, 2018, 04:25:04 AM »
    So...
    IF this file is found:
    d:\myfolder\archive\NAME\documents\exist.txt
    THEN
    This file (if it exists):
    d:\myfolder\archive\NAME\documents\today\not_copied.txt
    SHALL BE RENAMED TO
    d:\myfolder\archive\NAME\documents\today\copied.txt
    go to next NAME

    BUT IF d:\myfolder\archive\NAME\documents\today\copied.txt ALREADY EXISTS...
    don't do anything; leave not.copied.txt alone; leave copied.txt alone,
    go to next NAME
    Is that right?

    Blisk

      Topic Starter


      Intermediate

      Thanked: 1
      • Experience: Familiar
      • OS: Windows 7
      Re: multiple renaming files
      « Reply #17 on: December 23, 2018, 04:51:05 AM »
      BUT IF d:\myfolder\archive\NAME\documents\today\copied.txt ALREADY EXISTS...
      don't do anything; leave not.copied.txt alone; leave copied.txt alone,
      go to next NAME
      Is that right?

      no, there should never exist not_copied.txt and copied.txt both the same time in folder
      d:\myfolder\archive\NAME\documents\today
      is should exist only one file, not_copied.txt which will be renamed to copied.txt
      or copied.txt which should be as it is.

      Salmon Trout

      • Guest
      Re: multiple renaming files
      « Reply #18 on: December 23, 2018, 06:23:03 AM »
      This may work for you... perhaps you can try it...

      Batch to be run in D:\Myfolder

      In my test setup, folders under "d:\myfolder\archive" are:

      Bill
      George
      Gil
      Joe
      John
      Mary
      Mike
      Nina
      Peter
      Sam
      Steve

      Of these,

      Bill, Mike, Peter, do NOT have an exist.txt in their folder d:\myfolder\Archive\NAME\documents\

      The others all do

      all NAMEs have a not_copied.txt in folder d:\myfolder\Archive\NAME\documents\today\

      I suggest you run the batch on a COPY of your data until you are happy that it does what you want!!!

      @echo off
      setlocal enabledelayedexpansion
      set "thisdir=%cd%"
      for /f "delims=" %%A in ('dir archive /b /ad') do (
          set NAME=%%A
          REM echo Checking archive\!NAME!
          if exist "Archive\!NAME!\documents\exist.txt" (
          echo Archive\!NAME!\documents\documents\exist.txt FOUND
          if exist "Archive\!NAME!\documents\today\not_copied.txt" (   
             echo Archive\!NAME!\documents\today\not_copied.txt FOUND
             echo RENAME to copied.txt
                  ren "archive\!NAME!\documents\today\not_copied.txt" "copied.txt" && echo Renamed OK
                  ) else (
                  echo Archive\!NAME!\documents\today\not_copied.txt NOT FOUND
              )
              ) else (
              echo Archive\!NAME!\documents%%A\documents\exist.txt NOT FOUND
          )
          echo.
      )



      Here is an example of the batch console output:

      Archive\Bill\documentsBill\documents\exist.txt NOT FOUND

      Archive\George\documents\documents\exist.txt FOUND
      Archive\George\documents\today\not_copied.txt FOUND
      RENAME to copied.txt
      Renamed OK

      Archive\Gil\documents\documents\exist.txt FOUND
      Archive\Gil\documents\today\not_copied.txt FOUND
      RENAME to copied.txt
      Renamed OK

      Archive\Joe\documents\documents\exist.txt FOUND
      Archive\Joe\documents\today\not_copied.txt FOUND
      RENAME to copied.txt
      Renamed OK

      Archive\John\documents\documents\exist.txt FOUND
      Archive\John\documents\today\not_copied.txt FOUND
      RENAME to copied.txt
      Renamed OK

      Archive\Mary\documents\documents\exist.txt FOUND
      Archive\Mary\documents\today\not_copied.txt FOUND
      RENAME to copied.txt
      Renamed OK

      Archive\Mike\documentsMike\documents\exist.txt NOT FOUND

      Archive\Nina\documents\documents\exist.txt FOUND
      Archive\Nina\documents\today\not_copied.txt FOUND
      RENAME to copied.txt
      Renamed OK

      Archive\Peter\documentsPeter\documents\exist.txt NOT FOUND

      Archive\Sam\documents\documents\exist.txt FOUND
      Archive\Sam\documents\today\not_copied.txt FOUND
      RENAME to copied.txt
      Renamed OK

      Archive\Steve\documents\documents\exist.txt FOUND
      Archive\Steve\documents\today\not_copied.txt FOUND
      RENAME to copied.txt
      Renamed OK



      Blisk

        Topic Starter


        Intermediate

        Thanked: 1
        • Experience: Familiar
        • OS: Windows 7
        Re: multiple renaming files
        « Reply #19 on: December 23, 2018, 07:22:40 AM »
        Thank you it work great.
        Also I have learned something new regarding scripts.

        I can also use this script in reverse, so renaming files not_copied into copied in folders which doesn't have file exist.txt
        If I need that, for now I don't need it.
        Thank you



        @echo off
        setlocal enabledelayedexpansion
        set "thisdir=%cd%"
        for /f "delims=" %%A in ('dir archive /b /ad') do (
            set NAME=%%A
            REM echo Checking archive\!NAME!
            if not exist "Archive\!NAME!\documents\exist.txt" (
            echo Archive\!NAME!\documents\documents\exist.txt NOT FOUND
            if exist "Archive\!NAME!\documents\today\not_copied.txt" (   
               echo Archive\!NAME!\documents\today\not_copied.txt FOUND
               echo RENAME to copied.txt
                    ren "archive\!NAME!\documents\today\not_copied.txt" "copied.txt" && echo Renamed OK
                    ) else (
                    echo Archive\!NAME!\documents\today\not_copied.txt NOT FOUND
                )
                ) else (
                echo Archive\!NAME!\documents%%A\documents\exist.txt NOT FOUND
            )
            echo.
        )
        « Last Edit: December 23, 2018, 07:36:36 AM by Blisk »

        Salmon Trout

        • Guest
        Re: multiple renaming files
        « Reply #20 on: December 23, 2018, 07:46:59 AM »
        Well done! It is always satisfying when a script is used for learning.