2009-07-29 7 views
1

J'ai des paramètres tronqués lors du passage de chemins de fichiers très longs. J'ai besoin de démarrer un programme et de tout passer par les paramètres de commande - parfois, il tronque juste la commande. Il le fait globalement - donc ce n'est pas seulement un problème pour chaque paramètre mais pour tout.Paramètres C# Process.Start tronqués

modifier: Le problème est probablement la limite sur la longueur de la ligne de commande que monkey_p dit. Les questions sont: Comment le contourner? (changer le répertoire de travail ne fonctionnera pas car les fichiers peuvent exister à différents endroits).

+0

Il pourrait y avoir un autre problème: sp aces dans les paramètres, comme un espace est utilisé pour casser entre les paramètres. Utilisez des guillemets autour des paramètres. –

+0

1. tous les paramètres sont entourés par des guillemets 2. même un long paramètre entouré de guillemets obtiennent tronqués – argh

Répondre

1

Comment contourner la limitation à travail autour de la limitation, utilisez une ou plusieurs des méthodes suivantes (comme appropriée à votre situation):

  • Modifier les programmes qui nécessitent long commande lignes de sorte qu'ils utilisent un fichier que contient les informations de paramètre, , puis d'inclure le nom du fichier dans la ligne de commande.

Par exemple, au lieu d'utiliser la ExecutableFile.exe Paramètre1 Paramètre2 ... ligne de commande parameterN dans un fichier batch, modifier le programme à utiliser une ligne de commande qui est similaire à la ligne de commande suivante, où ParameterFile est un fichier qui contient les paramètres requis (parameter1 parameter2 ... parameterN):

ExecutableFile.exe c:\temp\ParameterFile.txt

  • Modifier les programmes qui utilisent un grand environnement variables pour que l'environnement des variables contiennent moins soit 2047 ou 8191 caractères (comme correspondant à votre système d'exploitation).

Par exemple, si l'environnement PATH variable contient plus soit 2047 ou 8191 caractères (comme correspondant à votre système d'exploitation), utilisation d'un ou plusieurs des méthodes suivantes pour réduire le nombre de caractères :

  • Utilisez des noms plus courts pour les dossiers et fichiers .
  • Réduisez la profondeur de arborescences de dossiers.
  • Stockez les fichiers dans moins de dossiers afin que moins de dossiers soient requis dans la variable d'environnement PATH .
  • Étudiez les méthodes possibles que vous pouvez utiliser pour réduire la dépendance de PATH pour localiser les fichiers .dll .

qui est de Microsoft Support, donc rien utile pour moi - il semble que cette limite ne peut pas être augmentée et il n'y a aucun moyen de l'exécuter d'une autre façon ...

Qu'est-ce que je vais Essayez de faire est: Rappelez-vous le chemin d'accès à chaque fichier, déplacez-les à DIR puis exécutez le programme avec CurrentDirectory défini sur DIR et transmettez simplement les noms de fichiers et après que le programme a terminé déplacer les fichiers à leur place - laid, moche , moche, je sais, mais il semble qu'il n'y a pas d'autre moyen ...

2

Je ne suis pas sûr de savoir quelle est votre question, mais il y a une limitation sur la ligne de commande. Cette même limitation sera valable pour Process.Start (commande, args)

Sur les ordinateurs exécutant Microsoft Windows XP ou plus tard, la longueur maximale de la chaîne que vous pouvez utiliser à la commande rapide est 8191 caractères . Sur ordinateurs exécutant Microsoft Windows 2000 ou Windows NT 4.0, la longueur maximale de la chaîne que vous pouvez utiliser à l'invite de commande est 2047 caractères.

+0

Je présume que c'est le problème - les questions sont: Comment le contourner? – argh

Questions connexes