none
Перенос файлов RRS feed

  • Вопрос

  • Ув. форумчане!

    Обращаюсь к Вам за помощью в написание скрипта на бате, который бы мог переносить файлы при попадание их в директиву.

    Есть папка С:/wav/ куда каждую ночь ложится несколько файлов. Необходимо, что бы батник отрабатывал сценарий следующий сценарий:

    Файл test.wav в директории С:/wav который был создан 31.01.2013 был перенесен на диск D:/wav/31.01.2013. То есть, что бы батник создавал папку с названием даты, например, 31.01.2013 и переносил туда все файлы созданы  31.01.2013.

    Заранее спасибо.

    31 января 2013 г. 10:31

Ответы

  • @echo off
    setlocal  ENABLEDELAYEDEXPANSION
    
    set f=C:\wav
    set d=D:\wav
    cd /d %f%
    
    for /F "tokens=1,4" %%a in ('dir %f%\*.wav /a-d ^| findstr /r "^[0-9]"') do (
    	set t=%d%\%%a
    	echo !t!
    	if not exist !t! md !t!
    	copy %%~fb !t!
    )
    

    • Помечено в качестве ответа KazunEditor 1 февраля 2013 г. 16:03
    31 января 2013 г. 11:05
    Отвечающий
  • по поводу предыдущего скрипта, я бы вот так написал(пробелы ы именах):

    for /F "tokens=1,3,*" %%a in ('dir %f%\*.wav /a-d ^| findstr /r "^[0-9]"') do (
            set t=%d%\%%a
            echo !t!
            if not exist "!t!" md "!t!"
            copy "%%~fc" "!t!"
            pause
    )


    и кстати, перенесен или скопирован?
    • Изменено Svolotch 31 января 2013 г. 13:40
    • Помечено в качестве ответа KazunEditor 1 февраля 2013 г. 16:03
    31 января 2013 г. 13:35

Все ответы

  • @echo off
    setlocal  ENABLEDELAYEDEXPANSION
    
    set f=C:\wav
    set d=D:\wav
    cd /d %f%
    
    for /F "tokens=1,4" %%a in ('dir %f%\*.wav /a-d ^| findstr /r "^[0-9]"') do (
    	set t=%d%\%%a
    	echo !t!
    	if not exist !t! md !t!
    	copy %%~fb !t!
    )
    

    • Помечено в качестве ответа KazunEditor 1 февраля 2013 г. 16:03
    31 января 2013 г. 11:05
    Отвечающий
  • Спасибо, но почему-то не отрабатывает, к сожалению. Создал папку !t! в и все:-(
    • Изменено UnLight 31 января 2013 г. 11:57
    31 января 2013 г. 11:42
  • Запустить в cmd указав пусть к скрипту и посмотреть ошибки.
    31 января 2013 г. 11:48
    Отвечающий
  • File not found
    31 января 2013 г. 12:22
  • Добавить диагностическое сообщение echo %%~fb  и посмотреть вывод.

    31 января 2013 г. 12:58
    Отвечающий
  • Спасибо большое) все заработало) простите за беспокойство)
    31 января 2013 г. 13:06
  • Олександр, хотел бы тоже уточнить некий вопрос с написания бата не по теме:

    Возможно ли написать батник, который бы проверял реестр на наличия данного ключа и после того как проверил : если есть - ничего не делаю, а если нету - то добавить? Можете подсказать, пожалуйста.

    Вот значения ключа:

    Windows Registry Editor Version 5.00

    [HKEY_CURRENT_USER\Software\Microsoft\Communicator]
    "IdleThreshold"=dword:00000005
    "AddToFirewallExceptionList"=dword:00000000
    "AwayThreshold"=dword:00000005
    "TrustModelData"="...., ......."
    "Language"=dword:00000419
    "ProductVersion"="4.0.7577.0"
    "OCTelephonyMode"=dword:00000000
    "EndPointLocation"=""
    "CEIPEnabled"=dword:00000000
    "DialpadState"=dword:00000001
    "DefaultEnvironment"=hex:00,00,00,00
    "FirstRunPlayed"=dword:00000001
    "CEIP"=dword:00000000
    "AlwaysOnTop"=hex:00,00,00,00
    "AlwaysShowMenu"=hex:00,00,00,00
    "WindowRect"=hex:5c,03,00,00,5d,00,00,00,a6,04,00,00,de,02,00,00
    "WindowMax"=hex:00,00,00,00
    "TabAreaHeight"=dword:0000008c
    "DSBkgndMode"=hex:01,00,00,00
    "PhoneNumberNormalizationRules"="E164

    null

    \\++(\\d+)[Xx]+(\\d{1,15})*

    +$1;ext=$2

    \\++(\\d+)

    +$1

    "
    "IM CharFormat"=hex:5c,00,00,00,0f,00,00,f8,00,00,00,00,c3,00,00,00,00,00,00,\
      00,00,00,00,00,01,00,4d,00,53,00,20,00,53,00,68,00,65,00,6c,00,6c,00,20,00,\
      44,00,6c,00,67,00,20,00,32,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
      00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
    "EnableTracing"=dword:00000000
    "ShowPhoto"=dword:00000001
    "AutoRunWhenLogonToWindows"=dword:00000001
    "AutoOpenMainWindowWhenStartup"=dword:00000000
    "MinimizeWindowToNotificationArea"=dword:00000001
    "ShowEmoticons"=dword:00000001
    "ShowColorBand"=dword:00000001
    "EnableEventLogging"=dword:00000000
    "LastViewedActivityTimestamp"="2013-01-31T11:59:52Z"

    [HKEY_CURRENT_USER\Software\Microsoft\Communicator\AddinPreference]
    "ExplorerUIVisible"=dword:00000001
    "ExplorerToolbarDock"=dword:00000001
    "ExplorerToolbarRowIndex"=dword:00000005
    "ExplorerToolbarTop"=dword:00000032
    "ExplorerToolbarLeft"=dword:00000000

    [HKEY_CURRENT_USER\Software\Microsoft\Communicator\AddinPreference\X500ToSmtpMap]

    31 января 2013 г. 13:13
  • Для проверки именно ключа:

    req query KEY_NAME 2>nul || regedit /s file.reg

    31 января 2013 г. 13:29
    Отвечающий
  • по поводу предыдущего скрипта, я бы вот так написал(пробелы ы именах):

    for /F "tokens=1,3,*" %%a in ('dir %f%\*.wav /a-d ^| findstr /r "^[0-9]"') do (
            set t=%d%\%%a
            echo !t!
            if not exist "!t!" md "!t!"
            copy "%%~fc" "!t!"
            pause
    )


    и кстати, перенесен или скопирован?
    • Изменено Svolotch 31 января 2013 г. 13:40
    • Помечено в качестве ответа KazunEditor 1 февраля 2013 г. 16:03
    31 января 2013 г. 13:35
  • А если это будет выполнятся при логоне юзера, то есть через ГПО загнать батник, который при логоне будет спрашивать у реестра есть ли у него данные значения, если ответ-да ничего не далаю, а если нет-то добавляю следующие значения.

    31 января 2013 г. 13:44
  • Спасибо, необходимо перенести.
    31 января 2013 г. 13:45
  • используйте move вместо copy
    2 февраля 2013 г. 9:52