Я пытаюсь написать сценарий, который монтирует общую папку.
Затем он должен создать в этом каталоге папку, названную по дате, например, 20181025
. В этой папке должно быть 2 папки типа 01 и 02.
Если все папки созданы, файлы должны быть скопированы в папки, но только файлы с отметкой времени, такой как дата папки.
Можно ли после этого заархивировать основную папку?
Моя попытка:
@echo off
SetLocal
m:
cd \folder\destination
mkdir %date:~6,2%%date:~4,2%%date:~0,4%
cd ??the folder I created??
Могу ли я скопировать файлы с помощью forfiles? Я не знаю, как помочь себе ... надеюсь, ты помогаешь.
Я сейчас немного дальше.
@echo off
SetLocal enableextensions
m:
cd \folder\destination
set day=%date:~6,4%%date:~3,2%%date:~0,2%
mkdir %day%
cd %day%
PushD "\\networkpath\"
forfiles /d +%date% /c "CMD /c if @fdate==%date% copy @fname M:\folder\destination\001
PopD
forfiles /d +%date% /c "CMD /c if @fdate==%date% copy @fname M:\folder\destination\002
PopD
EndLocal
Это работает для меня. Но было бы умнее, если бы я мог напрямую заархивировать эти папки. Отправить zip-папку по почте без использования Powershell невозможно?
Я попытался запустить этот сценарий до тех пор, пока он доходит до сервера, но во время работы обнаружил конфликт разрешений. В домене админ авторизован. Но когда я запускаю сценарий с разрешениями admanistrativ, доступ к netshare недоступен. если я продолжу с явными разрешениями, в разделе копирования произойдет сбой. Есть идеи?
Обычно вы используете такие команды, как
Copy
,XCopy
илиRoboCopy
, для копирования файлов, но вы, конечно, можете сделать это как часть командной строки вForFiles
. Чтобы узнать, как это сделать, прочтите справку по командам и попробуйте ее в тестовой среде. Чтобы получить информацию об использовании, которую я назвал справкой по командам, откройте командную строку, введите команду, затем пробел и/?
, напримерCmd /?
.