0
votes

Inviter la sélection de dossiers et la sauvegarde en tant que variables

Je suis très débutant lors de la programmation, mais j'ai pu créer un fichier de commandes utilisant les lignes suivantes pour ouvrir un sélecteur de dossier et enregistrer sous forme de variables ( srcfolder et Descolder ) . Mon problème avec cette configuration est que nous n'obtiens pas une fenêtre de sélection de fichier typique où nous pouvons coller d'une valeur pour le dossier que nous souhaitons commencer. Nos utilisateurs doivent avoir à cliquer sur une structure de dossiers de 6 ou 7 niveaux en profondeur pour choisir les dossiers que la dialogue suivante crée un processus lent

 folderchooser


< PRE> XXX

Nous aimerions pouvoir utiliser un dialogue similaire au fichier - Ouvrir dans de nombreuses applications Microsoft, mais seulement sélectionnez le dossier, puis enregistrez-le comme les deux variables qui seraient accessibles à le fichier de commandes.

juste contexte supplémentaire : nous avons une commande après cela qui utilise la src src et doss variable pour convertir des fichiers, donc Convert.exe "SRCFolder Desfolder" Ramasse tous les fichiers du dossier SRCFolder DROPS et dépose les fichiers correctement formatés dans le dossier Dessolder . Cette conversion fonctionne uniquement à partir d'un fichier de commandes, il suffit de répondre à la boîte de dialogue de sélection des dossiers s'il vous plaît :)

Une note supplémentaire, les utilisateurs qui doivent exécuter ce script ne sont pas des administrateurs sur les ordinateurs. J'ai trouvé quelques scripts ici qui fonctionnent, mais nécessitent un administrateur de se connecter à courir. La solution ne peut donc pas nécessiter des privilèges élevés.


1 commentaires

Vous pouvez affecter un chemin d'accès à une variable à l'aide de SET / P dans une goutte et faites glisser la mode. De plus, vous pouvez ouvrir l'explorateur de fichiers dans un répertoire racine cible. Cette fonctionnalité est examinée dans Ce script immédiatement avant et dans la routine : SelectFile . - Veuillez noter que votre question ressemble beaucoup à une demande de code, qui est hors tension ici sur Stackoverflow. Les questions doivent être axées sur des problèmes spécifiques avec les scripts existants qui ne fonctionnent pas comme prévu ou prévu, et non une liste de souhaits de ce que vous voulez que votre code soit.


3 Réponses :


0
votes

Si vous connaissez déjà un dossier parent de 5 ou 6 niveaux de profondeur, vous pouvez définir cela dans Vrootfolder Paramètre de la boîte de dialogue Sélection du dossier:

(new-object -COM 'Shell.Application').BrowseForFolder(0,'Please choose the source folder.',0,'c:\Program Files\').self.path


0 commentaires

0
votes

J'utilise la fonction suivante lorsque j'ai besoin d'une boîte de dialogue de fichier. Vous pouvez spécifier uniquement à afficher uniquement des types de fichiers spécifiques, ainsi que du dossier pour démarrer.

$fileName = Get-Filename -initialDirectory "D:\"


0 commentaires

0
votes

Voici un exemple , au lieu de pour la boîte de dialogue Parcourir pour le dossier.

0</* :
@Echo Off
SetLocal EnableExtensions
Set "RootAt=C:\Users\Schlief\Desktop\MyTestProject\SubDirectory"
:AskSrc
Set "SrcFolder="
For /F "Delims=" %%G In ('""%__APPDIR__%cscript.exe" //E:JScript //NoLogo "%~f0" "source" "%RootAt%" 2>Nul|Find /V """')Do Set "SrcFolder=%%G"
If Not Defined SrcFolder GoTo AskSrc
:AskDest
Set "DestFolder="
For /F "Delims=" %%G In ('""%__APPDIR__%cscript.exe" //E:JScript //NoLogo "%~f0" "destination" "%RootAt%" 2>Nul|Find /V """')Do Set "DestFolder=%%G"
If Not Defined DestFolder GoTo AskDest
Echo Source: %SrcFolder%, Destination: %DestFolder% & Pause
Exit /B */0;
var Folder=new ActiveXObject('Shell.Application').BrowseForFolder(0,'Select your '+WScript.Arguments(0)+' directory',1,WScript.Arguments(1));
try{new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(Folder.Self.Path)};catch(e){};close();


0 commentaires