CMD/BAT - [решено] Чтение строки из файла в переменную
-
Николя
Re: CMD/BAT - [решено] Чтение строки из файла в переменную
@echo on
cd /d %ALLUSERSPROFILE%
cd ..
dir /b >%temp%\users.temp
Получается список учеток:
допустим 3
All Users - (ALLUSERSPROFILE)
Администратор - (USERPROFILE)
Петя
Первые 2 можно опреледить как системные переменные ИНТЕРЕСУЕТ ПУТЬ К ТРЕТЬЕЙ учетке или сколько их там может быть
затем необходимо по очереди подставить путь учетки как переменную в cmd, скажем для
копирования данных из учетки в иное место, вроде этого
XCOPY /S /E /Y "%USERPROFILE%\Рабочий стол" "D:\_Recover\Documents and Settings\%USERNAME%\Рабочий стол\"
по окончанию копирования, подставить другое значение (Путь) и продолжить
Иными словами, как определить как системную переменную путь к папке профиля не активного юзера.
cd /d %ALLUSERSPROFILE%
cd ..
dir /b >%temp%\users.temp
Получается список учеток:
допустим 3
All Users - (ALLUSERSPROFILE)
Администратор - (USERPROFILE)
Петя
Первые 2 можно опреледить как системные переменные ИНТЕРЕСУЕТ ПУТЬ К ТРЕТЬЕЙ учетке или сколько их там может быть
затем необходимо по очереди подставить путь учетки как переменную в cmd, скажем для
копирования данных из учетки в иное место, вроде этого
XCOPY /S /E /Y "%USERPROFILE%\Рабочий стол" "D:\_Recover\Documents and Settings\%USERNAME%\Рабочий стол\"
по окончанию копирования, подставить другое значение (Путь) и продолжить
Иными словами, как определить как системную переменную путь к папке профиля не активного юзера.
-
Petya V4sechkin
Re: CMD/BAT - [решено] Чтение строки из файла в переменную
sushnyak, примерно так:
Код:
Код:
Код: Выделить всё
@Echo Off
SetLocal EnableExtensions
CD /D "%AllUsersProfile%"
CD ..
For /F "Delims=" %%I In ('Dir /B /AD-S-H ^| FindStr /V /B /I /C:"All Users"') Do (
MD "D:\_Recover\Documents and Settings\%%I\Рабочий стол"
XCopy "%%I\Рабочий стол" "D:\_Recover\Documents and Settings\%%I\Рабочий стол" /E /H /Y
)-
sushnyak
Re: CMD/BAT - [решено] Чтение строки из файла в переменную
Petya V4sechkin,
Хорошо, пользователей находит, каталог создает,
а как быть если заданий на копирование много больше,
перед каждым новой задачей нужно снова подставлять твой скрипт ?
XCOPY /S /E /Y "%USERPROFILE%\Рабочий стол" "D:\_Recover\Documents and Settings\%USERNAME%\Рабочий стол\"
XCOPY /S /E /Y "%USERPROFILE%\Мои документы" "D:\_Recover\Documents and Settings\%USERNAME%\Мои документы\"
XCOPY /S /E /Y "%USERPROFILE%\Избранное" "D:\_Recover\Documents and Settings\%USERNAME%\Избранное\"
XCOPY /S /Y "%USERPROFILE%\Local Settings\Application Data\Microsoft\*.bmp" "D:\_Recover\Documents and Settings\%USERNAME%\Local Settings\Application Data\Microsoft\"
XCOPY /S /Y "%APPDATA%\Adobe" "D:\_Recover\Documents and Settings\%USERNAME%\Application Data\Adobe\"
XCOPY /S /Y "%APPDATA%\Canopus\EDIUS" "D:\_Recover\Documents and Settings\%USERNAME%\Application Data\Canopus\EDIUS\"
XCOPY /S /Y "%APPDATA%\Canopus\ProCoder 2\User Presets\*.cpf" "D:\_Recover\Documents and Settings\%USERNAME%\Application Data\Canopus\ProCoder 2\User Presets\"
XCOPY /S /Y "%APPDATA%\Sony" "D:\_Recover\Documents and Settings\%USERNAME%\Application Data\Sony\"
XCOPY /S /Y "%APPDATA%\Opera" "D:\_Recover\Documents and Settings\%USERNAME%\Application Data\Opera\"
XCOPY /S /Y "%APPDATA%\Mozilla" "D:\_Recover\Documents and Settings\%USERNAME%\Application Data\Mozilla\"
XCOPY /S /Y "%APPDATA%\utorrent" "D:\_Recover\Documents and Settings\%USERNAME%\Application Data\utorrent\"
XCOPY /S /Y "%APPDATA%\BSplayer PRO" "D:\_Recover\Documents and Settings\%USERNAME%\Application Data\BSplayer PRO\"
XCOPY /S /Y "%APPDATA%\Gracebyte Software" "D:\_Recover\Documents and Settings\%USERNAME%\Application Data\Gracebyte Software\"
XCOPY /S /Y "%APPDATA%\VyPRESS" "D:\_Recover\Documents and Settings\%USERNAME%\Application Data\VyPRESS\"
XCOPY /S /Y "%APPDATA%\Radmin" "D:\_Recover\Documents and Settings\%USERNAME%\Application Data\Radmin\"
XCOPY /S /Y "%APPDATA%\AutoPowerOn" "D:\_Recover\Documents and Settings\%USERNAME%\Application Data\AutoPowerOn\"
XCOPY /S /Y "%APPDATA%\Download Master" "D:\_Recover\Documents and Settings\%USERNAME%\Application Data\Download Master\"
Это только то что есть на сейчас, в будущем список увеличится, как тут быть ?
Хорошо, пользователей находит, каталог создает,
а как быть если заданий на копирование много больше,
перед каждым новой задачей нужно снова подставлять твой скрипт ?
XCOPY /S /E /Y "%USERPROFILE%\Рабочий стол" "D:\_Recover\Documents and Settings\%USERNAME%\Рабочий стол\"
XCOPY /S /E /Y "%USERPROFILE%\Мои документы" "D:\_Recover\Documents and Settings\%USERNAME%\Мои документы\"
XCOPY /S /E /Y "%USERPROFILE%\Избранное" "D:\_Recover\Documents and Settings\%USERNAME%\Избранное\"
XCOPY /S /Y "%USERPROFILE%\Local Settings\Application Data\Microsoft\*.bmp" "D:\_Recover\Documents and Settings\%USERNAME%\Local Settings\Application Data\Microsoft\"
XCOPY /S /Y "%APPDATA%\Adobe" "D:\_Recover\Documents and Settings\%USERNAME%\Application Data\Adobe\"
XCOPY /S /Y "%APPDATA%\Canopus\EDIUS" "D:\_Recover\Documents and Settings\%USERNAME%\Application Data\Canopus\EDIUS\"
XCOPY /S /Y "%APPDATA%\Canopus\ProCoder 2\User Presets\*.cpf" "D:\_Recover\Documents and Settings\%USERNAME%\Application Data\Canopus\ProCoder 2\User Presets\"
XCOPY /S /Y "%APPDATA%\Sony" "D:\_Recover\Documents and Settings\%USERNAME%\Application Data\Sony\"
XCOPY /S /Y "%APPDATA%\Opera" "D:\_Recover\Documents and Settings\%USERNAME%\Application Data\Opera\"
XCOPY /S /Y "%APPDATA%\Mozilla" "D:\_Recover\Documents and Settings\%USERNAME%\Application Data\Mozilla\"
XCOPY /S /Y "%APPDATA%\utorrent" "D:\_Recover\Documents and Settings\%USERNAME%\Application Data\utorrent\"
XCOPY /S /Y "%APPDATA%\BSplayer PRO" "D:\_Recover\Documents and Settings\%USERNAME%\Application Data\BSplayer PRO\"
XCOPY /S /Y "%APPDATA%\Gracebyte Software" "D:\_Recover\Documents and Settings\%USERNAME%\Application Data\Gracebyte Software\"
XCOPY /S /Y "%APPDATA%\VyPRESS" "D:\_Recover\Documents and Settings\%USERNAME%\Application Data\VyPRESS\"
XCOPY /S /Y "%APPDATA%\Radmin" "D:\_Recover\Documents and Settings\%USERNAME%\Application Data\Radmin\"
XCOPY /S /Y "%APPDATA%\AutoPowerOn" "D:\_Recover\Documents and Settings\%USERNAME%\Application Data\AutoPowerOn\"
XCOPY /S /Y "%APPDATA%\Download Master" "D:\_Recover\Documents and Settings\%USERNAME%\Application Data\Download Master\"
Это только то что есть на сейчас, в будущем список увеличится, как тут быть ?
-
Petya V4sechkin
Re: CMD/BAT - [решено] Чтение строки из файла в переменную
sushnyak, в цикл вставляйте (образец я вам показал).
-
Wens
Re: CMD/BAT - [решено] Чтение строки из файла в переменную
Здравствуйте. Пожалуйста помогите решить задачу, пытаюсь уже второй день и ни получается. Есть тексовый документ (1.txt), в нем около 200 строк текста, некоторые строки пустые, в некоторых спецсимволы. Необходимо создать New.txt и перенести в него из 1.txt первые 50 строк. Необходим перенос именно строк, а не просто текста, т.е. точная копия первых 50 строк из 1.txt . Пытался командой more - переносится не содиржимое экрана cmd, а содиржимое буфера, команда +150 не сработает даже если выставить обратный порядок, т.к. общее кол-во строк значение переменное, первые 50 строк всегда первые, новые появляются снизу, знака минус не предусмотрено, fiind и sort тоже никак.
-
Petya V4sechkin
Re: CMD/BAT - [решено] Чтение строки из файла в переменную
Wens, VBS устроит?
Код:
Код:
Код: Выделить всё
Dim FSO, FIn, FOut, Cnt
Set FSO = CreateObject("Scripting.FileSystemObject")
Set FIn = FSO.OpenTextFile("1.txt", 1)
Set FOut = FSO.CreateTextFile("New.txt", True)
Cnt = 0
Do While Not FIn.AtEndOfStream And Cnt < 50
FOut.WriteLine FIn.ReadLine
Cnt = Cnt + 1
Loop
FOut.Close
FIn.Close-
Wens
Re: CMD/BAT - [решено] Чтение строки из файла в переменную
Спасибо за ответ, только эта операция является частью конструкции батника, попробовал встроить ее в батник и создать vbs из него - неполучается. Если особо не затруднит, нельзя ли найти решение через cmd ? В принципе, я командой more +50 создал второй файл txt , в нем нет как раз первых 50 строк, но не получается вывести разницу, пытаюсь заставить Findstr вывести разницу, тоже не получается.
-
Petya V4sechkin
Re: CMD/BAT - [решено] Чтение строки из файла в переменную
Цитата Wens:
только эта операция является частью конструкции батника, попробовал встроить ее в батник и создать vbs из него - неполучается.
Делаете скрипт .vbs, запускаете из батника командой:
Код:
только эта операция является частью конструкции батника, попробовал встроить ее в батник и создать vbs из него - неполучается.
Делаете скрипт .vbs, запускаете из батника командой:
Код:
Код: Выделить всё
CScript /Nologo имя_скрипта.vbs-
Wens
Re: CMD/BAT - [решено] Чтение строки из файла в переменную
Так в том то и дело что мне очень надо иметь один только батник, можно создание и запуск скрипта в процессе работы батника, но у меня не получается перекинуть из батника в скрипт строку Do While Not FIn.AtEndOfStream And Cnt < 50 , все остальные строки долетают как надо, а эта либо не долетает вообще, либо с кавычками, либо приходят кракозяблы, между строками пустых строк как у вас нет, но если вставить недостающую, то работает. Вот ищу решение а иначи уже почти готовый батник придется переделывать в скрипт.
-
Petya V4sechkin
Re: CMD/BAT - [решено] Чтение строки из файла в переменную
Цитата Wens:
не получается перекинуть из батника в скрипт строку Do While Not FIn.AtEndOfStream And Cnt < 50
Код:
Символ ^ для экранирования спецсимволов.
не получается перекинуть из батника в скрипт строку Do While Not FIn.AtEndOfStream And Cnt < 50
Код:
Код: Выделить всё
Echo Do While Not FIn.AtEndOfStream And Cnt ^< 50 >>имя_скрипта.vbsСимвол ^ для экранирования спецсимволов.