2016-08-10 5 views
1

J'ai un problème suivant. Je me connecte à un lecteur flash Windows 12 USB à travers et 12 ports hub. J'écris un script dans lequel l'utilisateur peut simplement double-cliquer dessus et télécharger tous les fichiers d'un dossier spécifique dans un dossier créé sur le bureau. Pour le rendre universel, je demande à l'utilisateur de saisir son nom d'utilisateur Windows et sa lettre de partition Windows. Et puis (pour l'instant) je demande à l'utilisateur de taper toutes les 12 lettres une par une des commandes qui est assez brutale. Je voulais faire en sorte que l'utilisateur n'ait qu'à entrer la première lettre du lecteur et ensuite générer automatiquement des lettres pour les 11 lecteurs restants car c'est toujours le cas que les lecteurs sont montés avec le bon ordre de lettres en fonction du premier. Comme on peut le voir dans le code, j'ai essayé de le faire avec la conversion en ascii et de revenir au caractère, mais cela ne fonctionne pas et je ne trouve rien d'autre que je pourrais comprendre ou implémenter.VBS comment générer des lettres consécutives pour les lecteurs flash USB connectés

J'espère que c'est assez clair et merci d'avance pour de l'aide!

Ce code (lorsque je tente de faire la conversion ascii):

DIM fso 
Set fso=CreateObject("Scripting.FilesystemObject") 
On Error Resume Next 

Set oDrive = fso.Drives 

username = InputBox("Enter winows user name") 
wl = Inputbox("Enter Your windows partition drive letter") 


l0 = Inputbox("Enter Your 1st camera drive letter") 
'l1 = Inputbox("Enter Your 2nd camera drive letter") 
'l2 = Inputbox("Enter Your 3rd camera drive letter") 
'l3 = Inputbox("Enter Your 4th camera drive letter") 
'l4 = Inputbox("Enter Your 5th camera drive letter") 
'l5 = Inputbox("Enter Your 6th camera drive letter") 
'l6 = Inputbox("Enter Your 7th camera drive letter") 
'l7 = Inputbox("Enter Your 8th camera drive letter") 
'l8 = Inputbox("Enter Your 9th camera drive letter") 
'l9 = Inputbox("Enter Your 10th camera drive letter") 
'l10 = Inputbox("Enter Your 11th camera drive letter") 
'l11 = Inputbox("Enter Your 12th camera drive letter") 


fso.CreateFolder ""& wl &":\Users\"& username &"\Desktop\recording" 

fso.CreateFolder ""& wl &":\Users\"& username &"\Desktop\recording\cam0" 
fso.CopyFile ""& l0 &":\DCIM\100HDDVR\*.*", ""& wl &":\Users\"& username &"\Desktop\recording\cam0\" 

fso.CreateFolder ""& wl &":\Users\"& username &"\Desktop\recording\cam1" 
'fso.CopyFile ""& l1 &":\DCIM\100HDDVR\*.*", ""& wl &":\Users\"& username &"\Desktop\recording\cam1\" 
fso.CopyFile "Chr(Asc('"& l0 &"') + 1):\DCIM\100HDDVR\*.*", ""& wl &":\Users\"& username &"\Desktop\recording\cam1\" 

fso.CreateFolder ""& wl &":\Users\"& username &"\Desktop\recording\cam2" 
fso.CopyFile ""& l2 &":\DCIM\100HDDVR\*.*", ""& wl &":\Users\"& username &"\Desktop\recording\cam2\" 

fso.CreateFolder ""& wl &":\Users\"& username &"\Desktop\recording\cam3" 
fso.CopyFile ""& l3 &":\DCIM\100HDDVR\*.*", ""& wl &":\Users\"& username &"\Desktop\recording\cam3\" 

fso.CreateFolder ""& wl &":\Users\"& username &"\Desktop\recording\cam4" 
fso.CopyFile ""& l4 &":\DCIM\100HDDVR\*.*", ""& wl &":\Users\"& username &"\Desktop\recording\cam4\" 

fso.CreateFolder ""& wl &":\Users\"& username &"\Desktop\recording\cam5" 
fso.CopyFile ""& l5 &":\DCIM\100HDDVR\*.*", ""& wl &":\Users\"& username &"\Desktop\recording\cam5\" 

fso.CreateFolder ""& wl &":\Users\"& username &"\Desktop\recording\cam6" 
fso.CopyFile ""& l6 &":\DCIM\100HDDVR\*.*", ""& wl &":\Users\"& username &"\Desktop\recording\cam6\" 

fso.CreateFolder ""& wl &":\Users\"& username &"\Desktop\recording\cam7" 
fso.CopyFile ""& l7 &":\DCIM\100HDDVR\*.*", ""& wl &":\Users\"& username &"\Desktop\recording\cam7\" 

fso.CreateFolder ""& wl &":\Users\"& username &"\Desktop\recording\cam8" 
fso.CopyFile ""& l8 &":\DCIM\100HDDVR\*.*", ""& wl &":\Users\"& username &"\Desktop\recording\cam8\" 

fso.CreateFolder ""& wl &":\Users\"& username &"\Desktop\recording\cam9" 
fso.CopyFile ""& l9 &":\DCIM\100HDDVR\*.*", ""& wl &":\Users\"& username &"\Desktop\recording\cam9\" 

fso.CreateFolder ""& wl &":\Users\"& username &"\Desktop\recording\cam10" 
fso.CopyFile ""& l10 &":\DCIM\100HDDVR\*.*", ""& wl &":\Users\"& username &"\Desktop\recording\cam10\" 

fso.CreateFolder ""& wl &":\Users\"& username &"\Desktop\recording\cam11" 
fso.CopyFile ""& l11 &":\DCIM\100HDDVR\*.*", ""& wl &":\Users\"& username &"\Desktop\recording\cam11\" 


Wscript.Echo "File copy complete." 

Répondre

1

Utilisez Asc()/Chr() pour convertir entre les chiffres et caractères. Assurez-vous de «arrêter à Z». Comme dans:

>> Function min(a, b) : If a <= b Then : min = a : Else : min = b : End If : End Function 
>> For Each d In Split("A B C D E F G H I J K L M N O P Q R S T U V W X Y Z") 
>>  a = Asc(d) 
>>  WScript.Stdout.Write d & " " & a & ":" 
>>  For i = a To min(Asc("Z"), a + 11) 
>>   WScript.Stdout.Write " " & Chr(i) 
>>  Next 
>>  WScript.Stdout.WriteLine 
>> Next 
>> 
A 65: A B C D E F G H I J K L 
B 66: B C D E F G H I J K L M 
C 67: C D E F G H I J K L M N 
D 68: D E F G H I J K L M N O 
E 69: E F G H I J K L M N O P 
F 70: F G H I J K L M N O P Q 
G 71: G H I J K L M N O P Q R 
H 72: H I J K L M N O P Q R S 
I 73: I J K L M N O P Q R S T 
J 74: J K L M N O P Q R S T U 
K 75: K L M N O P Q R S T U V 
L 76: L M N O P Q R S T U V W 
M 77: M N O P Q R S T U V W X 
N 78: N O P Q R S T U V W X Y 
O 79: O P Q R S T U V W X Y Z 
P 80: P Q R S T U V W X Y Z 
Q 81: Q R S T U V W X Y Z 
R 82: R S T U V W X Y Z 
S 83: S T U V W X Y Z 
T 84: T U V W X Y Z 
U 85: U V W X Y Z 
V 86: V W X Y Z 
W 87: W X Y Z 
X 88: X Y Z 
Y 89: Y Z 
Z 90: Z 
>> 
+0

Hi! Merci beaucoup pour votre contribution. Je ne comprends pas bien cependant. J'ai essayé d'utiliser Asc()/Chr() pour convertir mais sans chance. Ou est-ce que j'ai besoin du tableau que vous avez posté pour que la conversion fonctionne? Est-ce que je comprends bien? – Bart