Batch code to paste from clipboard to a file?
Moderator: DosItHelp
Batch code to paste from clipboard to a file?
For a .bat file, how can I write whats currently copied from the clipboard to a new file. If the file exists, it will overwrite it, if it doesn't exist, then it will create the file.
So if I were to copy a text, then run the .bat file, it will create the file, then write what you copied, to that file.
Something like
CLIP > "output.txt"
So if I were to copy a text, then run the .bat file, it will create the file, then write what you copied, to that file.
Something like
CLIP > "output.txt"
Re: Batch code to paste from clipboard to a file?
Hi here is a vbscript don't ask me how it work i just took part of the code from here
http://community.spiceworks.com/scripts/show/358-paste-clipboard-to-file
and changed it abit and by luck it worked even i don't know the vbscript
save it as .vbs file type and change the "D:\1.txt" with your directory
you can run the script using patch or make the patch create the vbscript to a temp then run it so it will be one file
http://community.spiceworks.com/scripts/show/358-paste-clipboard-to-file
and changed it abit and by luck it worked even i don't know the vbscript
Code: Select all
Set objHTML = CreateObject("htmlfile")
ClipboardText = objHTML.ParentWindow.ClipboardData.GetData("text")
path = "D:\1.txt"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(path, 2, true)
objFile.WriteLine ClipboardText
objFile.Close
save it as .vbs file type and change the "D:\1.txt" with your directory
you can run the script using patch or make the patch create the vbscript to a temp then run it so it will be one file
Re: Batch code to paste from clipboard to a file?
OK I made a batch file here:
it make the vbs file in %temp% and run it to copy the clipboard to a text file then delete the vbs script
don't forget o change the path variable
it make the vbs file in %temp% and run it to copy the clipboard to a text file then delete the vbs script
Code: Select all
@echo off
cls
set "path=D:\clip.txt"
>"%temp%\clipboard.vbs" (
echo.Set objHTML = CreateObject("htmlfile"^)
echo.ClipboardText = objHTML.ParentWindow.ClipboardData.GetData("text"^)
echo.path = "%path%"
echo.Set objFSO = CreateObject("Scripting.FileSystemObject"^)
echo.Set objFile = objFSO.OpenTextFile(path, 2, true^)
echo.objFile.WriteLine ClipboardText
echo.objFile.Close )>>"%temp%\clipboard.vbs"
"%temp%\clipboard.vbs"
del /F /Q %temp%\clipboard.vbs
don't forget o change the path variable
Re: Batch code to paste from clipboard to a file?
abc0502 - that worked here too and I wrapped it into a batch file. (Edit: you were too quick for me)
If a filename is not specified on the command line then it will use cliptext.txt in the current folder.
If a filename is not specified on the command line then it will use cliptext.txt in the current folder.
Code: Select all
@echo off
if "%~f1"=="" %0 "cliptext.txt"
(
echo Set objHTML = CreateObject("htmlfile"^)
echo ClipboardText = objHTML.ParentWindow.ClipboardData.GetData("text"^)
echo Set objFSO = CreateObject("Scripting.FileSystemObject"^)
echo Set objFile = objFSO.OpenTextFile("%~f1", 2, true^)
echo objFile.WriteLine ClipboardText
echo objFile.Close
) > "%temp%\clip.vbs"
start "" "%temp%\clip.vbs"
Re: Batch code to paste from clipboard to a file?
@foxidrive
it was realy just luck
it was realy just luck
Re: Batch code to paste from clipboard to a file?
paste.vbs
Usage:
[cscript //nologo] paste.vbs [ /? | /o:FileName [ /w /c ] ]
Note: Run in cscript mode if executed without arguments!
/? Displays this help message.
/o Redirects to the defined file.
FileName File name or full name where to redirect.
/w Overwrites the defined file. (Appends by default.)
/c Creates not existing file. (Not created by default.)
Regards
aGerman
Code: Select all
Set colNamendArgs = WScript.Arguments.Named
iNamedArgs = colNamendArgs.Count
ret = 1
Do
If LCase(Right(WScript.FullName, 11)) <> "cscript.exe" And iNamedArgs = 0 Then Exit Do
If iNamedArgs = 0 Then
WScript.Echo getString
ret = 0
Exit Do
End If
If colNamendArgs.Exists("?") Then
displayHelp
ret = 0
Exit Do
End If
If Not colNamendArgs.Exists("o") Then Exit Do
If colNamendArgs.Item("o") = "" Then Exit Do
open = 8
If colNamendArgs.Exists("w") Then open = 2
createnew = False
If colNamendArgs.Exists("c") Then createnew = True
Set objFSO = CreateObject("Scripting.FileSystemObject")
Err.Clear
On Error Resume Next
Set objFile = objFSO.OpenTextFile(colNamendArgs.Item("o"), open, createnew)
objFile.WriteLine getString
objFile.Close
On Error Goto 0
If Not Err Then ret = 0
Exit Do
Loop
Set colNamendArgs = Nothing
Set objFSO = Nothing
Set objFile = Nothing
WScript.Quit ret
Function getString()
Set objHTML = CreateObject("HTMLFile")
getString = objHTML.ParentWindow.ClipboardData.GetData("text")
Set objHTML = Nothing
End Function
Sub displayHelp
WScript.Echo "Pastes text from clipboard." & vbLf & vbLf & _
"[cscript //nologo] paste.vbs [ /? | /o:FileName [ /w /c ] ]" & vbLf & vbLf & _
"Note: Run in cscript mode if executed without arguments!" & vbLf & _
" /?" & vbTab & vbTab & "Displays this help message." & vbLf & _
" /o" & vbTab & vbTab & "Redirects to the defined file." & vbLf & _
" FileName" & vbTab & " File name or full name where to redirect." & vbLf & _
" /w" & vbTab & vbTab & "Overwrites the defined file. (Appends by default.)" & vbLf & _
" /c" & vbTab & vbTab & "Creates not existing file. (Not created by default.)" & vbLf
End Sub
Usage:
[cscript //nologo] paste.vbs [ /? | /o:FileName [ /w /c ] ]
Note: Run in cscript mode if executed without arguments!
/? Displays this help message.
/o Redirects to the defined file.
FileName File name or full name where to redirect.
/w Overwrites the defined file. (Appends by default.)
/c Creates not existing file. (Not created by default.)
Regards
aGerman
Re: Batch code to paste from clipboard to a file?
Dear aGerman,
thank you for this code. This is only True for standard Codepage, can you please modify the code to recognize special character?
Best Regards
thank you for this code. This is only True for standard Codepage, can you please modify the code to recognize special character?
Best Regards
Re: Batch code to paste from clipboard to a file?
I can't change the behavior of the console window in case you don't use option /o. If you want to write to a file then UTF-16 could be used.
Usage:
Steffen
Code: Select all
Set colNamendArgs = WScript.Arguments.Named
iNamedArgs = colNamendArgs.Count
ret = 1
Do
If LCase(Right(WScript.FullName, 11)) <> "cscript.exe" And iNamedArgs = 0 Then Exit Do
If iNamedArgs = 0 Then
WScript.Echo getString
ret = 0
Exit Do
End If
If colNamendArgs.Exists("?") Then
displayHelp
ret = 0
Exit Do
End If
If Not colNamendArgs.Exists("o") Then Exit Do
If colNamendArgs.Item("o") = "" Then Exit Do
If colNamendArgs.Exists("u") Then
Set objADOS = CreateObject("ADODB.Stream")
objADOS.CharSet = "utf-16"
objADOS.LineSeparator = -1
objADOS.Open
If Not colNamendArgs.Exists("w") Then
On Error Resume Next
objADOS.LoadFromFile colNamendArgs.Item("o")
objADOS.Position = objADOS.Size
On Error Goto 0
End If
Err.Clear
Set objHTML = CreateObject("HTMLFile")
objADOS.WriteText objHTML.ParentWindow.ClipboardData.GetData("text"), 1
Set objHTML = Nothing
On Error Resume Next
objADOS.SaveToFile colNamendArgs.Item("o"), 2
If Err.Number = 0 Then ret = 0
On Error Goto 0
objADOS.Close
Set objADOS = Nothing
Exit Do
End If
open = 8
If colNamendArgs.Exists("w") Then open = 2
createnew = False
If colNamendArgs.Exists("c") Then createnew = True
Set objFSO = CreateObject("Scripting.FileSystemObject")
Err.Clear
On Error Resume Next
Set objFile = objFSO.OpenTextFile(colNamendArgs.Item("o"), open, createnew)
objFile.WriteLine getString
objFile.Close
If Err.Number = 0 Then ret = 0
On Error Goto 0
Exit Do
Loop
Set colNamendArgs = Nothing
Set objFSO = Nothing
Set objFile = Nothing
WScript.Quit ret
Function getString()
Set objHTML = CreateObject("HTMLFile")
getString = objHTML.ParentWindow.ClipboardData.GetData("text")
Set objHTML = Nothing
End Function
Sub displayHelp
WScript.Echo "Pastes text from clipboard." & vbLf & vbLf & _
"[cscript //nologo] paste.vbs [ /? | /o:FileName [ [ /w /c ] | [ /w /u ] ]" & vbLf & vbLf & _
"Note: Run in cscript mode if executed without arguments!" & vbLf & _
" /?" & vbTab & vbTab & "Displays this help message." & vbLf & _
" /o" & vbTab & vbTab & "Redirects to the defined file." & vbLf & _
" FileName" & vbTab & " File name or full name where to redirect." & vbLf & _
" /w" & vbTab & vbTab & "Overwrites the defined file. (Appends by default.)" & vbLf & _
" /c" & vbTab & vbTab & "Creates not existing file. (Not created by default.)" & vbLf & _
" /u" & vbTab & vbTab & "Writes to the file as UTF-16 with BOM instead of ANSI." & vbLf & _
" " & vbTab & vbTab & "Default behavior changes in a way that a not existing" & vbLf & _
" " & vbTab & vbTab & "file will always be created. (Omitting /c has no effect.)"
End Sub
Code: Select all
Pastes text from clipboard.
[cscript //nologo] paste.vbs [ /? | /o:FileName [ [ /w /c ] | [ /w /u ] ]
Note: Run in cscript mode if executed without arguments!
/? Displays this help message.
/o Redirects to the defined file.
FileName File name or full name where to redirect.
/w Overwrites the defined file. (Appends by default.)
/c Creates not existing file. (Not created by default.)
/u Writes to the file as UTF-16 with BOM instead of ANSI.
Default behavior changes in a way that a not existing
file will always be created. (Omitting /c has no effect.)
Re: Batch code to paste from clipboard to a file?
Hello aGerman
Dear Steffen,
i am grateful. It is working perfect.
Your character is honorable and i appreciate this. Thank you.
Best Regards
Dear Steffen,
i am grateful. It is working perfect.
Your character is honorable and i appreciate this. Thank you.
Best Regards