2016-04-09 3 views
0

Le but des fichiers batch est de faire défiler un répertoire, de déplacer tous les fichiers avec une date modifiée entre x et y vers un répertoire temporaire (situé dans un dossier archive), de créer un fichier. zip du répertoire temporaire, puis supprimez le répertoire temporaire.Les chemins UNC ne sont pas pris en charge dans le fichier batch

J'appelle un lot d'un lot. Le lot initial utilise pushd pour récupérer le chemin réseau, mais lorsque le lot suivant est appelé et que les fichiers forfiles sont utilisés pour déplacer des fichiers dans une archive, l'erreur de chemin UNC est renvoyée. "ERREUR: les chemins UNC (\ machine \ share) ne sont pas supportés."

Les deux fichiers .bat se trouvent dans le même répertoire du réseau partagé.

J'ai lu l'autre réponse pour ce problème similaire, mais aucune des réponses ne résout mon problème.

fichier batch Première:

@echo off 
setlocal EnableExtensions 
cls 
@pushd %~dp0 

:firststep 
........ 
code.... 
........ 
echo Calling... 
CALL ArchiveTool.bat %MM% %yyyy% \\riskview\EBSArchive 
echo Press any key to process next directory... 
pause >nul 

Pour ici tout fonctionne correctement.

lot A défaut:

@echo off 
setlocal EnableExtensions 
....... 
Code... 
....... 
md %3\Archive\%1-%2 
forfiles /P %3 /D +%1/1/%2 /C "cmd /c if /I @FDATE LSS %mm%/1/%2 move @file     
%3\Archive\%1-%2 >NUL & echo|set /p=." 

Le répertoire est créé avec succès, mais les forfiles échoue.

+0

1) Je vous encourage fortement à utiliser un script Powershell au lieu d'un fichier .bat pour quoi que ce soit de toute complexité. 2) Si vous devez utiliser un fichier .bat - et si les noms UNC ne fonctionnent pas ... alors une solution de contournement simple pourrait être de mapper le partage à une lettre de lecteur. – paulsm4

+0

Vous pouvez définir un chemin UNC complet pour le .bat avec des guillemets après 'call'. Et% ~ dp0 devrait être remplacé par% ~ p0 pour le chemin partagé du réseau. 'Pushd' ne peut pas non plus être utilisé pour le chemin UNC. – enjoying

Répondre

0

UNC default paths are turned off by default as they used to crash older programs.[10]

The Dword registry value DisableUNCCheck at HKEY_CURRENT_USER\Software\Microsoft\Command Processor [10] allows the default directory to be UNC. CD command will refuse to change but placing a UNC path in Default Directory in a shortcut to Cmd or by using the Start command. start "" /d \127.0.0.1\C$ "cmd /k" (C$ share is for administrators).

De mon entrée au https://en.wikipedia.org/wiki/Batch_file#Setting_a_UNC_working_directory_from_a_shortcut