Установка параметров в пакетном скрипте при вызове VBScript - PullRequest
0 голосов
/ 21 февраля 2020

У меня есть файл bat, который вызывает vbscript, который преобразует кодировку файла. во время выполнения кода путем установки части файла он работает как fin, но когда я пытаюсь передать более одного файла в качестве параметра, я получаю следующую ошибку: ошибка во время выполнения Microsoft VBScript: недопустимая или неквалифицированная ссылка

Вы можете увидеть мой пакетный скрипт ниже run.cmd:

@Echo off
SET CHEMINDAT = C:\Users\myuser\Desktop\TRY\DATA_TY\
SET CHEMINTMP = C:\Users\myuser\Desktop\TRY\TMP\

echo %DATE% %TIME% Debut de traitement.

dir %CHEMINDAT%* /a:-d/b > %CHEMINTMP%-liste.txt 2

FOR /F "eol=; tokens=1 delims=, " %%i in (%CHEMINTMP%-liste.txt) do (

echo %%i > %CHEMINTMP%Fichier_en_cours.txt
echo %DATE% %TIME% Traitement du fichier : %%i

cscript //NoLogo C:\Users\myuser\Desktop\TRY\\Scripts\unix2dos_7.vbs %%i

)
pause
exit /b 1

Ниже вы увидите мой VBScript 'unix2dos_7.vbs':

Const adTypeBinary          = 1
Const adTypeText            = 2
Const adSaveCreateNotExist  = 1
Const adSaveCreateOverWrite = 2
Const adWriteLine = 1
Const adReadLine = -2
Const adLF = 10
Const adCR = 13
Const adCRLF = -1
Set streamUTF8 = CreateObject("ADODB.Stream")
Set streamASCII = CreateObject("ADODB.Stream")

Dim args
set args = Wscript.arguments
strOutOne= args(0)

streamUTF8.Open
streamUTF8.Type = adTypeText
streamUTF8.LineSeparator = adCRLF
streamUTF8.Charset = "UTF-8"
streamUTF8.LoadFromFile strOutOne

streamASCII.Open
streamASCII.Type = adTypeText
streamASCII.LineSeparator = adCRLF
streamASCII.CharSet = "us-ascii"

Do Until streamUTF8.EOS
streamASCII.WriteText streamUTF8.ReadText(adReadLine), adWriteLine
Loop
streamASCII.SaveToFile "myfileConverted.txt", adSaveCreateOverWrite

Я также хочу заменить исходный файл на новый, вместо создания нового myfileConverted.txt. чтобы у меня не было двух раз одного и того же документа

Кто-нибудь может мне помочь?

Заранее спасибо

1 Ответ

0 голосов
/ 24 февраля 2020

Я смог сделать то, что хотел ниже, вы увидите код: код партии:

@Echo off
SET CHEMINDAT = C:\Desktop\try\script_try_2\data\
SET CHEMINTMP = C:\\Desktop\try\TMP\

echo %DATE% %TIME% Debut de traitement.
dir %CHEMINDAT%* /a:-d/b > %CHEMINTMP%-liste.txt 

FOR /F "eol=; tokens=1 delims=, " %%i in (%CHEMINTMP%-liste.txt) do (

echo %%i > %CHEMINTMP%Fichier_en_cours.txt
echo %DATE% %TIME% Traitement du fichier : %%i


cscript //NoLogo C:\Desktop\try\script_try_2\unix2dos_7_2.vbs "%%i"
)

pause
exit /b 1

Мой VBSScript:

Const adTypeBinary          = 1
Const adTypeText            = 2
Const adSaveCreateNotExist  = 1
Const adSaveCreateOverWrite = 2
Const adWriteLine = 1
Const adReadLine = -2
Const adLF = 10
Const adCR = 13
Const adCRLF = -1
Set streamUTF8 = CreateObject("ADODB.Stream")
Set streamASCII = CreateObject("ADODB.Stream")

set args = Wscript.arguments
strOutOne= args(0)

streamUTF8.Open
streamUTF8.Type = adTypeText
streamUTF8.LineSeparator = adCRLF
streamUTF8.Charset = "UTF-8"
streamUTF8.LoadFromFile = strOutOne

streamASCII.Open
streamASCII.Type = adTypeText
streamASCII.LineSeparator = adCRLF
streamASCII.CharSet = "us-ascii"

Do Until streamUTF8.EOS
streamASCII.WriteText streamUTF8.ReadText(adReadLine), adWriteLine
Loop
streamASCII.SaveToFile(strOutOne), adSaveCreateOverWrite
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...