标题: [文本处理] mshta 命令提示脚本错误如何解决 [打印本页]
作者: hentai87 时间: 2016-12-18 12:41 标题: mshta 命令提示脚本错误如何解决
- mshta "javascript:var s=clipboardData.getData('text');if(s)new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(s);close();"|more >temp.txt
- @echo off
- setlocal enabledelayedexpansion
- set n=1
- (for /f %%i in ('type "temp.txt"') do (
- echo TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:productForm ATTR=ID:external_product_id_gio_child_!n! CONTENT=%%i
- set /a n+=1
- ))>temp2.txt
- clip<temp2.txt
- del temp*.txt
复制代码
这个bat是把剪贴板的多行文字插入到指定文本之前并且输出
比如剪贴板内容
123
你好
输出:
123hhhh
你好hhhh
测试后大部分剪贴板文本都能正常处理,但是,
比如这个
C:\Program Files (x86)\Common Files\Adobe\Adobe Desktop Common\ADS\Adobe Desktop Service.exe
剪贴板文本是这个就会提示脚本错误
bat是别人写的,我也不懂哪里出现了问题
我觉得很详细了,求不扣分
作者: ads350668398 时间: 2016-12-18 13:40
这个不是单纯批注里
中间有 脚本 而且发胜了错勿
作者: hentai87 时间: 2016-12-18 13:42
这个不是单纯批注里
中间有 脚本 而且发胜了错勿
ads350668398 发表于 2016-12-18 13:40
大神. 怎么修复这个错误- -
作者: ads350668398 时间: 2016-12-18 13:50
回复 3# hentai87
如果我知道哪错了 我一定告诉你
作者: hentai87 时间: 2016-12-18 15:04
回复 4# ads350668398 - winclip -p -u>temp.txt
- @echo off
- (for /f %%i in ('type "temp.txt"') do (
- echo TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:productForm ATTR=ID:external_product_id_gio_child_!n! CONTENT=%%i
- ))>temp2.txt
- clip<temp2.txt
- del temp*.txt
复制代码
这样没报错了,但是不能正确处理文本了,只能处理第一个字符,不知道为什么
比如剪贴板内容123
输出:TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:productForm ATTR=ID:external_product_id_gio_child_!n! CONTENT=1
而不是TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:productForm ATTR=ID:external_product_id_gio_child_!n! CONTENT=123
作者: pcl_test 时间: 2016-12-18 15:56
与这个路径无关,你试试复制这里的路径再运行批处理,就不会报错
C:\Program Files (x86)\Common Files\Adobe\Adobe Desktop Common\ADS\Adobe Desktop Service.exe
作者: hentai87 时间: 2016-12-18 21:22
本帖最后由 hentai87 于 2016-12-18 21:23 编辑
回复 6# pcl_test
我是从excel里复制出来的,这里复制就不会报错,怎么修改bat让他支持excel复制的文本呢
并且还有个问题,,复制的文本如果有空格就只能处理前半段
作者: pcl_test 时间: 2016-12-18 21:35
本帖最后由 pcl_test 于 2016-12-19 00:28 编辑
- @echo off
- set "str=TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:productForm ATTR=ID:external_product_id_gio_child_'+(++$n)+' CONTENT="
- set "load=Add-Type -AssemblyName System.Windows.Forms"
- powershell -sta -c "%load%;[Windows.Forms.Clipboard]::GetText() -split '[\r\n]+'|%%{'%str%'+$_}|out-file 'tmp.txt' -encoding default"
- pause
复制代码
作者: pcl_test 时间: 2016-12-18 21:35
本帖最后由 pcl_test 于 2016-12-19 00:28 编辑
- /*&cls
- @echo off
- set "netpath=%systemroot%\Microsoft.NET\Framework"
- for /f "delims=" %%a in ('dir /ad /b "%netpath%\v?.*"') do (
- if exist "%netpath%\%%a\csc.exe" (
- set "cscpath=%netpath%\%%a\csc.exe"
- goto :0
- )
- )
- echo;未安装.Net Framework 2.0及以上组件或相关程序丢失&pause&exit
- :0
- set "app=$getText.exe"
- if not exist "%app%" "%cscpath%" /out:"%app%" "%~f0"
- setlocal enabledelayedexpansion
- (for /f "delims=" %%i in ('"%app%"') do (
- set /a n+=1
- echo;TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:productForm ATTR=ID:external_product_id_gio_child_!n! CONTENT=%%i
- ))>"tmp.txt"
- pause&exit
- */
- using System;
- using System.Windows.Forms;
- class getText {
- [STAThread]
- public static void Main(string[] args) {
- if(Clipboard.ContainsText())
- Console.WriteLine(Clipboard.GetText());
- }
- }
复制代码
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |