Вопросы по CMD,BAT,PowerShell

Discussion in 'Windows' started by Cthulchu, 16 Jan 2009.

  1. SpangeBoB

    SpangeBoB Elder - Старейшина

    Joined:
    12 Jul 2008
    Messages:
    1,680
    Likes Received:
    393
    Reputations:
    102
    Типо такого:

    Путь поменять на свое - C:,C:\Windows

    И на powershell:

     
    #61 SpangeBoB, 11 Sep 2009
    Last edited: 11 Sep 2009
    1 person likes this.
  2. Kreoda

    Kreoda New Member

    Joined:
    9 Sep 2009
    Messages:
    20
    Likes Received:
    0
    Reputations:
    0
    Почему срабатыва.т сразу оба условия ?

    Code:
    
    if EXIST "start.cmd" {
    
    del cmd.bat
    
    }
    
    else {
    
    start TEST.rar
    
    }
    
    
     
  3. SpangeBoB

    SpangeBoB Elder - Старейшина

    Joined:
    12 Jul 2008
    Messages:
    1,680
    Likes Received:
    393
    Reputations:
    102
    {} заменить на () ,а так все работает как надо.
     
    1 person likes this.
  4. Kreoda

    Kreoda New Member

    Joined:
    9 Sep 2009
    Messages:
    20
    Likes Received:
    0
    Reputations:
    0
    Не удивляйся,но не сработало))Такое чувство,что он игнорирует условия...вообще.Просто выполняет команды...
     
  5. SpangeBoB

    SpangeBoB Elder - Старейшина

    Joined:
    12 Jul 2008
    Messages:
    1,680
    Likes Received:
    393
    Reputations:
    102
    Пропустил еще один момент:
    if EXIST "start.cmd" (
    del cmd.bat
    ) else (
    start TEST.rar
    )

    Если прописать pause,то увидим ошибку ,поэтому после ) должно следовать else.
     
  6. Kreoda

    Kreoda New Member

    Joined:
    9 Sep 2009
    Messages:
    20
    Likes Received:
    0
    Reputations:
    0
    Не работает:(.Может,забыть вообще про элс? Проверка-то идёт )).А как замутить в цикле так,чтобы 50 файлов удалились на диске по шаблону или в конкретной папке без привлечения сторонних утилит ?
     
  7. SpangeBoB

    SpangeBoB Elder - Старейшина

    Joined:
    12 Jul 2008
    Messages:
    1,680
    Likes Received:
    393
    Reputations:
    102
    В конец скрипта добаить pause и вывод сюда приложить,что там за ошибка такая.


    Использовать цикл for и с помощью del,findstr - составить регулярное выражение с шаблоном,внутри цикла так же производить подсчет.
     
  8. Kreoda

    Kreoda New Member

    Joined:
    9 Sep 2009
    Messages:
    20
    Likes Received:
    0
    Reputations:
    0
    Эм...а инкремент декремент тут есть как таковой? скок не парюсь не могу динамически файлы создавать:(.
     
  9. Kreoda

    Kreoda New Member

    Joined:
    9 Sep 2009
    Messages:
    20
    Likes Received:
    0
    Reputations:
    0
    Code:
    
    set n = 1
    :fuck
    set n += 1
    for /L %%i in (1,1,100) do (
    
    echo  > %n%.txt
    goto:fuck
    
    )
    
    pause
    
    
    Хотел создать цикл,который бы создал определённое количество файлов,но цикл походу вышел бесконечный,и переменная не подставляется...
     
  10. SpangeBoB

    SpangeBoB Elder - Старейшина

    Joined:
    12 Jul 2008
    Messages:
    1,680
    Likes Received:
    393
    Reputations:
    102
    Как таковой есть,но в цикле for ,оператор set /a не добавляет поэтому можно сделать примерно следущее:

    @echo off
    set /a a=1
    for /F %%i in (file.txt) do (
    call :result %%i
    )
    :result
    if NOT "%1" == "" (
    set /a a=%a%+1
    mkdir %a%%1
    )

    файл file.txt содержит текст
    a
    b
    c
    d

    в итоге создаются 4 папки
    1a
    2b
    3c
    4d
     
  11. Kreoda

    Kreoda New Member

    Joined:
    9 Sep 2009
    Messages:
    20
    Likes Received:
    0
    Reputations:
    0
    черт...а просто нельзя разве в фор прогнать счетчик например 1.тхт-100000.тхт насоздавать файлов ?Неужели всё так геморрно...30% понял написанного
     
  12. Kreoda

    Kreoda New Member

    Joined:
    9 Sep 2009
    Messages:
    20
    Likes Received:
    0
    Reputations:
    0
    Вышел из положения:

    Code:
    
    for /L %%i in (1,1,100) do (
    
    fuck >> %%i.txt
    
    )
    
    pause
    
    
     
  13. SpangeBoB

    SpangeBoB Elder - Старейшина

    Joined:
    12 Jul 2008
    Messages:
    1,680
    Likes Received:
    393
    Reputations:
    102
    Решений масса,каждый решает как ему проще,мне так тебе так.Поэтому я не пишу не чего на batch,а использую powershell где все гораздо проще,элегантнее и понятней.
     
  14. Kreoda

    Kreoda New Member

    Joined:
    9 Sep 2009
    Messages:
    20
    Likes Received:
    0
    Reputations:
    0
    Эээ..а есть по пауершеллу книга или ещё что...что это вообще такое
     
  15. SpangeBoB

    SpangeBoB Elder - Старейшина

    Joined:
    12 Jul 2008
    Messages:
    1,680
    Likes Received:
    393
    Reputations:
    102
    http://www.books.ru/shop/search?search_type=+&query=powershell&inw=1
    В эл.виде есть Введение в Windows PowerShell,вторая только недавна была переведена,так что может через пару месяцев появится.
     
  16. lefebr

    lefebr Banned

    Joined:
    16 Jan 2010
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Здрасте. Подскажите пожалуйста как можно реализовать в bat сценарии копирование файлов по списку. Список представляет собой обычный txt файл.
     
  17. SpangeBoB

    SpangeBoB Elder - Старейшина

    Joined:
    12 Jul 2008
    Messages:
    1,680
    Likes Received:
    393
    Reputations:
    102
    Примерно так:

    Если в пути есть русские имена добавить после @echo off строчку chcp 1251
     
    #77 SpangeBoB, 16 Jan 2010
    Last edited: 16 Jan 2010
    1 person likes this.
  18. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    как добавить слеши в путь?

    в батнике написал

    echo "" > %1

    для очистки файла
    но когда в %1 попадает путь с пробелами (например до раб. стола) - ничего не работает
     
  19. SpangeBoB

    SpangeBoB Elder - Старейшина

    Joined:
    12 Jul 2008
    Messages:
    1,680
    Likes Received:
    393
    Reputations:
    102
    В чем сложность взять "%1" в кавычки?
     
  20. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    гг, бестолку

    c:\Documents and Settings\deex\Рабочий стол>echo 1>"C:\Documents"

    и на диске C появляется файл Documents

    был бы в винде баш - ниче бы больше не надо было для счастья