2013-06-12 2 views
0

Je crois que ce code est correct, mais j'ai créé un dossier temporaire dans le fichier c: \ et le fichier batch n'est pas créé pour une raison quelconque. Est-ce que quelqu'un a des suggestions?Le fichier batch n'est pas créé dans le sous-dossier

var sText, s; 
    var fso = new ActiveXObject("Scripting.FileSystemObject"); 


    if (!fso.FileExists("C:\\temp\\COO_BTO_Test.bat")) { 
     s = fso.CreateTextFile("C:\\temp\\COO_BTO_Test.bat", true); 
     sText = "@echo off"; 
     s.WriteLine(sText); 

     sText = ":Lbl"; 
     s.WriteLine(sText); 

     sText = "ECHO \"^XA^MD0^PRB^JVY^LL1760^LH%XL%,%YL%^FS \">> COO.TXT"; 
     s.WriteLine(sText); 

     sText = "ECHO \"^FO66,08^BY2,2.0,32^BCN,N,N,N^SN%Sno0%,1,Y^FS \">> COO.TXT"; 
     s.WriteLine(sText); 

     sText = "ECHO \"^FO66,48^AF,8,8^SN%Sno0%,1,Y^FS  \">> COO.TXT"; 
     s.WriteLine(sText); 

     sText = ":END"; 
     s.WriteLine(sText); 

     sText = "ECHO \"^PQ1  \">> COO.TXT"; 
     s.WriteLine(sText); 

     sText = "ECHO \"^XZ  \">> COO.TXT"; 
     s.WriteLine(sText); 

     sText = "REM MODE COM1 9600" 
     s.WriteLine(sText); 

     sText = "REM TYPE COO.TXT > COM1" 
     s.WriteLine(sText); 

     sText = "TYPE COO.TXT > LPT1" 
     s.WriteLine(sText); 
     s.Close(); 
    } 
+0

Le fichier existe-t-il déjà? Le processus dispose-t-il d'un accès en écriture à cet emplacement de dossier? Aussi: pourquoi ne pas simplement faire s.WriteLine ("@ echo off"); au lieu de le mettre en sText? –

+0

Le fichier n'existe pas. Si ce n'est pas le cas, comment puis-je vérifier? Oui, je pourrais tout mettre en ligne d'écriture mais je viens de copier et coller à partir d'un autre groupe de code et je l'ai juste utilisé comme ça. – Cloud

+0

Comment utilisez-vous le code ci-dessus? Est-ce qu'il fonctionne dans une application de console localement comme vous? ASP.NET dans IIS? –

Répondre

0

Ooops, je pense qu'il vous manque un s.Close();

+0

J'ai ajouté le s.Close(); le problème existe toujours. – Cloud

+0

Je ne me souviens pas si 2008 s'exécute localement comme vous ou comme IISAppPool. Dans les paramètres de dossier pour c: \ temp, ajoutez IISAppPool avec un accès en écriture à ce dossier. –

+0

Pouvez-vous me guider à travers le processus pour ajouter IISAppPool avec un accès en écriture dans le dossier? Je vous remercie. – Cloud

Questions connexes