Показать полную графическую версию : Bat>>TXT
Подскажите как записать весь путь,плюс к этому файлы находящие по этому пути по маске,т.е
echo %temp%/*fgh* >> cmds.txt как то так только что бы еще на конце было имя найденного файла по маске
В результате в текстовом документе должно получится
C:\Users\name\AppData\Local\Temp\fgh123333 (т.е полный путь и имя файла по маске должно писаться в текстовой документ,помогите осуществить
dedmazai1870
09-11-2014, 13:14
LepeT
dir /b/s "%temp%/*fgh*" >> cmds.txt
Так со всеми подпапками будет и независимо от регистра.((
полный путь и имя файла по маске должно писаться в текстовой документ »
@Echo Off
(For /f "tokens=*" %%i In ('Dir /b /a-d "%TEMP%\*fgh*"') Do Echo %TEMP%\%%i)>cmds.txt
Exit
Спасибо большое,а можно еще вопрос как указать после какой строчки должен создавать текст,к примеру мне нужно не в начале,а на 24 строке в текстовом документе
к примеру мне нужно не в начале,а на 24 строке в текстовом документе »
Если я правильно понял, то нужно пропустить первые 23 строки вывода? Тогда так:@Echo Off
(For /f "skip=23 tokens=*" %%i In ('Dir /b /a-d "%TEMP%\*fgh*"') Do Echo %TEMP%\%%i)>cmds.txt
Exit
Да правильно,не выходит,он весь текстовой документ стирает и все
проще говоря мне нужно в текст длинной 50 строк вставить имена файлов,а именно что бы имена файлов начинались на 24 строке
в текст длинной 50 строк »
Этот файл уже существует? В нем уже есть 50 строк? И приведите пример Вашего файла, если он существует до запуска скрипта, ибо его нужно обрабатывать.что бы имена файлов начинались на 24 строке »
А если файлов будет найдено меньше 50-24=26 штук или наоборот больше 26 и весь файл станет длиннее 50 строк? Что нужно делать?
Да файлов может быть от 2 до 5,если их много то при вставке и общее количество строк будет больше,к примеру 5 файлов - 5 строк,их нужно вставить после 23,а после что бы продолжался остальной текст в итоге будет 55 строк
Я пробовал и с текстовом документом где уже есть текст и пробовал так что бы он сам его создавал,все равно 0 кб.
LepeT, приведите пример Вашего файла »
Заархивируйте его и прикрепите к посту.
это vbs скрипт
Option Explicit
Const SHCONTF_NONFOLDERS = &H00040
Const SHCONTF_INCLUDEHIDDEN = &H00080
Dim arrFiles
Dim strFTPFolder
Dim objFSO
Dim objShell
Dim strFile
Dim objDestFolder
Dim lngCurrSize
Dim objFolderItems
Dim objFolderItem
arrFiles = Array( _
"D:\Install\Mozilla Firefox\Mozilla Firefox 28.0\Firefox Setup 28.0.exe", _
"D:\Install\Mozilla Firefox\Mozilla Firefox 28.0\FirefoxPortable_28.0_Russian.paf.exe", _
"D:\Install\Mozilla Firefox\Mozilla Firefox 33.0.2\Firefox Setup 33.0.2.exe", _
"D:\Install\Mozilla Firefox\Mozilla Firefox 33.0.2\FirefoxPortable_33.0.2_Russian.paf.exe" _
)
strFTPFolder = "ftp://User:Password@my.ftpserver.com/DestFolder"
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objShell = WScript.CreateObject("Shell.Application")
Set objDestFolder = objShell.NameSpace(strFTPFolder)
If Not objDestFolder Is Nothing Then
For Each strFile In arrFiles
If objFSO.FileExists(strFile) Then
WScript.Echo strFile, "--->", objDestFolder.self.Path
lngCurrSize = -1
objDestFolder.CopyHere strFile
Do Until lngCurrSize = objFSO.GetFile(strFile).Size
Set objFolderItems = objDestFolder.Items
objFolderItems.Filter SHCONTF_NONFOLDERS + SHCONTF_INCLUDEHIDDEN, "*.*"
For Each objFolderItem In objFolderItems
If objFolderItem.Name = objFSO.GetFileName(strFile) Then
lngCurrSize = objFolderItem.Size
End If
Next
WScript.Sleep 100
Set objFolderItems = Nothing
Loop
Else
WScript.Echo "Can't find source file [" & strFile & "]."
End If
Next
Else
WScript.Echo "Can't connect into FTP folder [" & strFTPFolder & "]."
WScript.Quit 2
End If
Set objShell = Nothing
Set objFSO = Nothing
WScript.Quit 0
LepeT, разделил Ваш файл на две части для упрощения задачи. Части прикрепил.
Скрипт:@Echo Off
(For /f "tokens=*" %%i In ('Dir /b /a-d "%TEMP%\*fgh*"') Do Echo "%TEMP%\%%i", _)>2vbs.txt
Copy /A 1vbs.txt + 2vbs.txt + 3vbs.txt cmds.txt
Exit
Странно очень,запускаю оригинал все работает,запускаю то что так получается ошибка http://f6.s.qip.ru/NGYkK88j.png причем в этой строке однак скобочка,сравнивал полностью текст,нету различий не каких,даже кодировку смотрел...
LepeT, попробуйте
@Echo Off
SetLocal EnableDelayedExpansion
Set "t="
(For /f "tokens=*" %%i In ('Dir /b /a-d "%TEMP%\*fgh*"') Do (
If Not "!t!"=="" Echo !t!, _
Set t="%TEMP%\%%i"
)
Echo !t! _)>2vbs.txt
Copy /A 1vbs.txt + 2vbs.txt + 3vbs.txt cmds.txt
Exit
Теперь заработало,а в чем ошибка была?
В последней строке списка (2vbs.txt) формировалась ненужная запятая.
Я понял,не подскажите еще возможно не по теме,про vbs,при отправке на ftp,почему приходит 1 файл и выскакивает лишь одна табличка,не могу понять почему
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.