Чёт меня переклинило. Пятница наверное. с помощью dir /b/s config.xml ищем файл config.xml и имеем выведенный полный путь к нему. Теперь этот файл нужно скопировать. Тут меня клинит, как подставить этот путь в xcopy
А как же пауершелл? xcopy умеет брать список файлов из файла? А линуховые утилиты можно позапускать? Через цигвин...
В лоб не выйдет. @echo off dir /b /s config.xml >filepath.txt set /P SRC=<filepath.txt del filepath.txt >nul 2>&1 echo %SRC%
Некрасиво. Ты тупо выполняешь копирование без проверки на существование файла. В результате выводится куча ошибок. Хотя и короче. С другой стороны путь тебе неизвестен, а он может понадобится и дальше.
глядя на это, размышляю - может, зря я "отравился" unix-shell'ом в 1992? пусть хоть и неуклюже, зато кое-что можно было бы сделать в коммандо-строчном скрипте и в венде... или когда появился такой развитый шелл в досе?
После смерти дос. В вин 2000/хп вроде бы стало возможным что-то делать вменяемое. Но всё равно извращение, хотя и деваться некуда.
а в каком состоянии сейчас cygwin ? под него компиляют свежие утилитки из мира линуха? я про до-PS-ную эпохуэ...
ну, может кому-то bash-скрипты видятся более лаконичными, нежели конструкции типа %%f find еще хорош, перенаправлялки всякие... ну и rsync, наверное, получше будет, чем xcopy. а если б придумали как на ходу в скриптах преобразовывать c:\ в /mnt/blabla/c или /cyg-drive/c , то и вовсе ляпота б была
В смысле? В переменную подставляется полный путь найденного файла. Т.е. файл гарантировано существует. И именно он и копируется. Что не так?
У тебя пытается тупо скопировать файл во всех каталогах. Получается вот такая фигня. D:\Works\UAE>for /R %f in (config.xml) do copy %f D:\temp 2>&1 D:\Works\UAE>copy D:\Works\UAE\config.xml D:\temp 2>&1 The system cannot find the file specified. D:\Works\UAE>copy D:\Works\UAE\2016.08.19\config.xml D:\temp 2>&1 The system cannot find the file specified. D:\Works\UAE>copy D:\Works\UAE\2016.12.01\config.xml D:\temp 2>&1 The system cannot find the file specified. D:\Works\UAE>copy D:\Works\UAE\2017.01.03\config.xml D:\temp 2>&1 The system cannot find the file specified. D:\Works\UAE>copy D:\Works\UAE\2017.01.12\config.xml D:\temp 2>&1 The system cannot find the file specified. D:\Works\UAE>copy D:\Works\UAE\2017.01.26\config.xml D:\temp 2>&1 The system cannot find the file specified. D:\Works\UAE>copy D:\Works\UAE\2017.02.22\config.xml D:\temp 2>&1 The system cannot find the file specified. D:\Works\UAE>copy D:\Works\UAE\2017.02.23\config.xml D:\temp 2>&1 The system cannot find the file specified.