Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Созд.*.txt по имени файла, с перемещением *.txt и файла в папку с именем файла.

Ответить
Настройки темы
CMD/BAT - [решено] Созд.*.txt по имени файла, с перемещением *.txt и файла в папку с именем файла.

Пользователь


Сообщения: 78
Благодарности: 23

Профиль | Отправить PM | Цитировать


Доброго здоровья...
Есть BATничек:
Код: Выделить весь код
echo off 
Set MainDir=%~dp0 
echo "%~n1">"%~n1.txt"|findstr /v "%~n1" %~n1.txt > %~n1.txt|md "%~n1" 
move "%~n1.txt" "%~n1"
echo %1|mkdir "%~n1"
move "%1" "%~n1"
Создаёт текстовый документ по имени выбранного файла, перемещает документ и выбранный файл в созданную папку по имени выбранного файла.Но он работает только для одного файла.При прописке в контекстное меню корректно работает для 3-х файлов.
Вопрос, к Уважаемым знатокам-программистам:"Что или как нужно добавить в BAT-ник, что бы он заработал для многих файлов.
Простите, если этот вопрос Вас смешит или раздражает, заинтересовался BAT и VBS совсем недавно, очень интересно. Буду рад любому совету.Можно варианты на VBS...
Заранее благодарен.Сергей.
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:58, 27-01-2011

 

Пользователь


Сообщения: 78
Благодарности: 23

Профиль | Отправить PM | Цитировать


Упорно поковырявшись, просмотрев много примеров и прочитав немного полезной информации, дописал BATник.
Для меня это неожиданно, но вот так -
Код: Выделить весь код
@Echo off
if exist "%~n1\%~n1.txt" (
:DEFAULT
 Echo MsgBox "Объект  ""%~n1\%~n1.txt"" , уже существует !" > msg.vbs 
 wscript msg.vbs 
 del msg.vbs ( 
 goto BREAK10
)else if not exist "%~n1\%~n1.txt" (
 echo "%~n1">"%~n1.txt"|findstr /v "%~n1" "%~n1.txt">"%~n1.txt"|md "%~n1"
 move "%~n1.txt" "%~n1"
) else (
  goto DEFAULT
)
:BREAK10

if exist "%~n1\%~nx1" (
:DEFAULT
 Echo MsgBox "Объект  ""%~n1\%~nx1"" , уже существует !" > msg.vbs 
 wscript msg.vbs 
 del msg.vbs (
 goto BREAK10
)else if not exist "%~dp0\%~n1\%~nx1" (
 echo "%~nx1"|mkdir "%~n1"
 move "%~nx1" "%~n1"
) else (
  goto DEFAULT
)
:BREAK10
-BATник заработал как надо. Единственное, что я пока понял, он работает только для 22-х файлов, что в принципе для работы из контекстного меню и для моих целей вполне достаточно. Ещё не смог пока прикрутить сюда открытие .txt при создании(очень удобно-сразу писать) и открытие созданной папки при проверке, если найден родительский объект(удобно, для просмотра)Будем учиться.
В принципе вопрос решён...

Отправлено: 01:44, 29-01-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 78
Благодарности: 23

Профиль | Отправить PM | Цитировать


Вот, то же самоё на VBS:
Код: Выделить весь код
Dim objWshShell, strFileName, strFullFileName
Dim strFullFolderName
Set objFSO      = WScript.CreateObject("Scripting.FileSystemObject")
Set objWshShell = WScript.CreateObject("WScript.Shell")

 If WScript.Arguments.Count = 1 Then
   sFile   = WScript.Arguments.Item(0)
   Set fso = CreateObject("Scripting.FileSystemObject")
   strFileName = sFile
 End If

STR = strFileName
   intLength = Len(str) 
   intCharacters = intLength - 4 
   strNew = Left(str, intCharacters) 

   strFullFolderName = objFSO.BuildPath(objWshShell.SpecialFolders("C , D ,"), strNew)
 If objFSO.FolderExists(strFullFolderName) Then
result = MsgBox ("Папка """& strFullFolderName &""" уже существует."  & Chr(10) & "Выберите действие:" & Chr(10) &  " "  & Chr(10) & """Да"" - переименовать папку в """& strFullFolderName & "_OLD""""" & Chr(10) & "и продолжить работу."  & Chr(10) & """Нет"" - окрыть существующую папку для просмотра." & Chr(10) & """Отмена"" - завершить работу.", vbYesNoCancel, "Выбор действия.")
 Select Case result
  Case vbYes
 if objFSO.FolderExists(strFullFolderName & "_OLD") Then
    objFSO.DeleteFolder strFullFolderName & "_OLD"
    objFSO.MoveFolder strFullFolderName , strFullFolderName & "_OLD"
    objFSO.CreateFolder strFullFolderName
      WScript.Sleep 500 
 Else 
    objFSO.MoveFolder strFullFolderName , strFullFolderName & "_OLD"
    objFSO.CreateFolder strFullFolderName
      WScript.Sleep 500 
 end if
  Case vbNo
   objWshShell.Run(strFullFolderName & "\") 
      WScript.Quit 0  
  Case vbCancel
      WScript.Quit 0  
 End Select 
 Else
    objFSO.CreateFolder strFullFolderName   ' 40-стр
 End If

   strFullFileName = objFSO.BuildPath(objWshShell.SpecialFolders("C , D ,"), strNew)
    objFSO.CreateTextFile strFullFileName & ".txt"
    objFSO.MoveFile strFullFileName & ".txt" , strFullFileName & "\"

   strFullFileName = objFSO.BuildPath(objWshShell.SpecialFolders("C , D ,"), strFileName)
    objFSO.MoveFile strFullFileName , strFullFolderName & "\"
'Можем открыть папку для просмотра, если надо:
'    objWshShell.Run("Explorer" &" " & strFullFolderName & "\")

Set objWshShell = Nothing
Set objFSO      = Nothing
  WScript.Quit 0
Не понятно только - почему работает только для 22-х файлов. Или это особенности операционной системы(может у меня, что-то не работает?) или я чего-то не догоняю.
Объясните, пожалуйста, если у кого-нибудь найдётся свободное время и желание.
Заранее благодарен...

Отправлено: 11:58, 30-01-2011 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Созд.*.txt по имени файла, с перемещением *.txt и файла в папку с именем файла.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Сохранение txt-файла в папку пользователя zvezda_t Вебмастеру 5 14-09-2010 17:52
программа для чистки txt файла Baiker Хочу все знать 7 13-09-2010 20:20
CMD/BAT - [решено] удалить строчки из файла a.txt spilberg Скриптовые языки администрирования Windows 19 20-07-2009 17:49
VBS/WSH/JS - помогите с написанием парсера txt файла NAW1986 Скриптовые языки администрирования Windows 2 15-06-2009 09:18
CMD/BAT - [решено] печать txt файла Loki3D Скриптовые языки администрирования Windows 15 12-05-2009 16:35




 
Переход