Показать полную графическую версию : Скрипт не видит путь
Добрый день. Такой вопрос. У меня есть скрипт, задача этого скрипта копировать файл с маской в другую папку.
Код скрипта:
echo off
if exist D:\outs\*Волжский*.xls copy D:\outs\*Волжский*.xls "D:\1_ingener\Волжский\f_out\отчет за\"
То есть по идее из папки выбирается файл с маской волжский, и копируется в папку отчет за. Почему то скрипт не видит путь куда копировать. Попробовал вместо f_out отчет за прописать папку 1, скрипт скопировал. Делался скрипт с кодировкой OEM 866. Как я понял скрипт не видит папку f_out. В чем же может быть дело?
Petya V4sechkin
13-09-2018, 10:03
romfus, какую ошибку выдаёт?
Как я понял скрипт не видит папку f_out.
Или папку "отчет за"?
Что покажет команда:
dir /A D:\1_ingener\Волжский\f_out
dir /A D:\1_ingener\Волжский\f_out » Команда видит папку. Когда я выставляю
"D:\1_ingener\Волжский\f_out\отчет за\" скрипт не копирует. Когда я делаю "D:\1_ingener\Волжский\f_out\1, скрипт тоже не копирует. А когда я делаю "D:\1_ingener\Волжский\1\" Скрипт срабатывает
Petya V4sechkin
13-09-2018, 11:05
romfus, какую ошибку выдаёт?
Команда видит папку. »
На будущее — не стесняйтесь прикладывать скриншоты.
Ошибка: D:\outs\Выплаты волжский.xls
Системе не удается найти указанный путь.
Скопировано файлов: 0
Главное если создать папку 1 по пути "D:\1_Ingener\Волжский\1\" все хорошо без ошибок. Скопировано: 1 файлов. Стоит создать папку 1 в папке f_out по пути "D:\1_Ingener\Волжский\f_out\1\" Системе не удается найти указанный путь.
Скопировано файлов: 0
Petya V4sechkin
13-09-2018, 11:27
romfus, можете сделать лог Process Monitor (https://technet.microsoft.com/ru-ru/sysinternals/processmonitor) следующим образом:
запустите Process Monitor;
попытайтесь выполнить скрипт, чтобы получилась ошибка;
сохраните лог: меню File -> Save -> PML-формат;
заархивируйте и выложите на любой файлообменник, например dropmefiles.com.
Стоит создать папку 1 в папке f_out по пути "D:\1_Ingener\Волжский\f_out\1\" Системе не удается найти указанный путь.
Как вариант: либо в имени папки, либо в скрипте может быть кириллическая "о" вместо латинской "o".
через dir /A D:\1_ingener\Волжский\f_out видит же папку. а стоит в скрипте указать папку то не видит. ВОт ссылка на архив:
Архив (https://dropmefiles.com/ovuul)
Petya V4sechkin
13-09-2018, 11:45
romfus, так и оказалось: в имени папки f_out кириллическая "о".
Все я нашел, вы правы. А как быть с папкой Отчет за. ее по прежнему не видит
Все разобрался. Вместо отчёт было написано отчет) Спасибо за помощь
Еще вопрос не подскажите. Вопрос по поводу маски файла. Имеются 2 файла с маской краснооктябрьский и октябрьский. По скрипту видно что файлы с маской краснооктябрьский отправляются в папку краснооктябрьский, а с маской октябрьский в папку Октябрьский. Получается так что в Октябрьский отправляется и краснооктябрьский и октябрьский, как можно поставить маску чтобы в октябрьский уходил только октябрьский. Вот код:
if exist D:\outs\*Краснооктябрьский*.xls copy D:\outs\*Краснооктябрьский*.xls "D:\3_ingener\Краснооктябрьский\f_оut\отчёт за"
if exist D:\outs\*Октябрьский*.xls copy D:\outs\*"Октябрьский"*.xls "D:\3_ingener\Октябрьский\f_оut\отчёт за"
Просто одной маской — никак, потому как Краснооктябрьский всегда подпадёт под *Октябрьский*. Если Вы предоставите больше информации по полным и реальным именам файлов, можно будет что-то посоветовать.
megaloman
13-09-2018, 17:17
romfus, Чем Краснооктябрьский отличается от Октябрьский, может символом впереди, например: пробел, минус, подчеркивание и т д.
Iska, Идея! @Echo Off
cls
Set "BoxIn=D:\outs"
Set "Mask=*.xls"
Set "BoxOut=D:\3_ingener"
Set "BoxOut2=f_оut\отчёт за"
Set "Exclude=~tmp.tmp"
Pushd "%BoxOut%" &&(
>%Exclude% cd.
Call :Copiring "%BoxIn%" "%Mask%" "%BoxOut%" "%BoxOut2%" "Краснооктябрьский"
Call :Copiring "%BoxIn%" "%Mask%" "%BoxOut%" "%BoxOut2%" "Октябрьский"
Del %Exclude%
Popd)
pause
GoTo :Eof
:Copiring
If Not Exist "%~3\%~5\%~4" Md "%~3\%~5\%~4"
Xcopy /D /Exclude:%Exclude% "%~1\*%~5%~2" "%~3\%~5\%~4\"
(>>%Exclude% Echo %~5)
GoTo :Eof
Сработает при копировании произвольного числа данных с именами регионов, лишь бы выдерживался порядок, например:
"Краснооктябрьский"
"Октябрьский"
"Верхневолжский"
"Нижневолжский"
"Волжский"
и т д
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.