Другие языки программирования и технологии

MS DOS. Ввожу команду чтоб копировать все найденные файлы на локальном диске - находит синтаксическую ошибку. Помогите..

for /f "tokens=1" %%i in ('cmd.exe /c dir /b "D:\*.mp3"') do (cmd.exe /c copy "D:\%%i" "C:\%%i") вот эта команда. Всю ночь над ней мучался, перебрал сотню вариантов наверное, думал что проблема в расстановке символов... теперь есть подозрение что не хватает определенных (недописанных) параметров. Кто подскажет, в чем здесь загвоздка? Буду весьма признателен.
Nurhan Mukat
Nurhan Mukat
8 650
Я В ЭТИХ %% не волоку ))))
если тебе надо скопировать все .mp3 с диска D, то вот код, будет всё копироваться в папку PIPEZ на диске D :

xcopy "D:\*.mp3" "D:\PIPEZ\" /Y /S/G/H/

вместо PIPEZ пиши любую свою папку, а так в ту папку откуда запускаешь батник

xcopy "D:\*.mp3" /Y /S/G/H/
Саша Сергеев
Саша Сергеев
27 745
Лучший ответ
Nurhan Mukat хотел уточнить, у вас ОС Windows Xp?
я в Windows 7 пытаюсь написать, и пишет "невозможно выполнить циклическое копирование")) может дело в этом? :D
Nurhan Mukat Алилуййййя!!! ЗАработало!!! Огромное спасибо!!!)))
[ cmd.exe /c [команда] ] она не обязательна так как все команды уже выполняются в командной строке (cmd.exe). Эта команду можно использовать из других программ мли скриптов, например: (в ‘меню пуск’>”выполнить”) выполните команду:
cmd.exe /c echo off & cls & echo Hello, World! & pause

for /f "tokens=*" %%i in ('dir /b "D:\*.mp3"') do ( copy "D:\%%i" "C:\%%i" )

tokens - определение набора разделителей, если не равно ‘*’, то можно получить не полную строку имени (если в имени есть пробелы) зависит от опций.
%%i – переменная/i фрагмент много строкового списка.
Петр Петров
Петр Петров
4 509
Ёшперный тсятер! Если сам блок цикла написан верно (никогда не юзал его в досе) , тогда попробуй посмотреть что у тебя %%i, может туда что то не то пишется?

И зачем ты вписываешь "cmd.exe /c", вроде бы и без этого должно нормально работать...
Nurhan Mukat cmd.exe /c выполняется просто в батнике. Извиняюсь, поправлюсь, я не в самой командной строке это делаю а в бат файле :) недавно начал осваивать, поэтому толком не разобрался еще(
Я не особо спец в этом, но.. .
1) После in в скобках по моему нельзя указывать команду, которая должна вернуть что-то, а чисто или маску файлов или текстовый файл с именами.
2) На скока я знаю, после do команда пишется просто так, без скобок.

И ещё вроде бы %%i получит имя с путём, я боюсь, и тогда выйдет что-то типа copy D:\D:\xxx.mp3 C:\D:\xxx.mp3

Но это всё ИМХО, я на столько не углублялся в это.
Обсуждали тут уже, используй windowsfix.ru