2015-04-08 5 views
0

Я вот-вот боюсь со следующей ошибкой в ​​течение 2 дней ERROR: UNC paths (\\machine\share) are not supported. и, наконец, натолкнулся на то, что получил много голосов here.UNC-пути (\ машина share) не поддерживаются

Плакат упоминает, используя pushd и popd, чтобы сопоставить букву бесплатного диска. Но у меня нет абсолютно никакой идеи, как это сделать. и, откровенно говоря, я боюсь, что я что-то беспорядок вверх :(

Как бы реализовать этот pushd & popd в мой SQL код:

DECLARE @N AS VARCHAR(2) -- days for retention 
    DECLARE @path AS VARCHAR(128) -- the path for deletion 
    DECLARE @cmd AS VARCHAR(512) -- the actual command 

    SET @N = '7' -- change the days here (Deleting files which are older that @N days) 
    SET @path = '\\TOMANYMS\c$\JohnDoe\91\TEST\serverapps\export' -- Path of the files you would like to check 
    SET @cmd = 'FORFILES /P "' + @path + '" /S /M export_status.* /D -' + @N + ' /C "cmd /c del @PATH"' --Deletes on the export_status files older than 7 days. 

    EXEC master.dbo.xp_cmdshell @cmd 

Я предполагаю, что я должен был бы поставить его в строке, где Я устанавливаю @cmd.

Любая помощь будет большим,

спасибо

+0

Если я правильно понимаю, что вы хотели бы, чтобы искать пути и вложенные папки для определенной маски файлов и удалить, если файл старше 7 дней ? Я мог бы предложить несколько других способов сделать это из SQL, которые не требуют 'FORFILES', если хотите. –

+0

@ Nick.McDermaid - Это было бы здорово! Я думал, что это единственный способ по-настоящему разобраться :) – Mike

+0

Например, эта страница показывает метод ROBOCOPY этого, и я считаю, что ROBOCOPY не обращает внимания на UNC ... любая причина, по которой вы не хотите использовать эту метод? http://ss64.com/nt/syntax-delolder.html –

ответ

0

Вы можете приковать команду DOS с помощью оператора & так:

set @cmd = 'pushd '+ @path+ ' & FORFILES /P \ /S /M export_status.* /D -' + @N + ' /C "cmd /c del @PATH"'+' & popd' 
+0

Спасибо Jaco, я попробовал это и все еще получаю некоторые ошибки. Я только что решил пойти по маршруту SSIS. Спасибо за помощь. – Mike