[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 在批处理中调用 powershell 发现速度很慢,在找问题原因。

本帖最后由 xczxczxcz 于 2018-10-29 20:56 编辑

如下面这条 查找 与 00.bat 同目录下的 00.txt 的哈希值。
  1. for /f "tokens=2 delims=: " %%e in ('powershell "get-filehash '00.txt' -Algorithm SHA1|FL"^|findstr /i "Hash"') do echo %%e
复制代码
====================
若用 certutil 命令很快。同样在处理网页内容时,用批命令处理虽繁琐点,但速度快。POWERSHELL 可以过滤,转码,文档截取等可以用管道一行命令处理完,但速度不快。偶现在一直找不到提速的方法。
求加速方法? 批和PS 混编。

用的哪个版本?升级到5.x有效果没
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 2# Batcher


    Windows 10 17134 最新版 PS 5.1.17134.228
  1. $psversiontable
复制代码
老大,分析一下。

TOP

单纯用PS速度也不错,但比 纯P 还是慢那点。

TOP

本帖最后由 yhcfsr 于 2018-10-29 22:24 编辑

这个没办法,CMD加载POWERSHELL命令时需要时间,我的体验是平均1-1.5S左右
可以BAT调用PS脚本这种双文件方式.
如果非要单文件BAT,可以将PS脚本的命令全部放到BAT里面,不过要做些改变.有点烦琐
QQ 33892006

TOP

回复 5# yhcfsr

是的。偿试 把PS 单独写一行。会快那么一点点。
如果把 PS的所有脚本内容搬到 批中。真的很麻烦。至少现在偶感觉麻烦。那个 $ 感觉不好处理。

调用 PS外部脚本,还没试它的结果能不能正确返回 批中。当然可以采用输出到文本的方式。不过这样就多了时间差的问题。如PS脚本还没完,批已运行到末行。还没试,纯假设。

2600个网页截取内容转码过滤,开始用了47分钟。太慢。经过两3天的 help 各种参数。现在也可以在20分钟内处理完。但纯P只要5-6分钟。
ps cmdlet 太多,真的不好找出最佳命令。
   
目前还不好完全脱离 批命令.

TOP

回复 6# xczxczxcz


    如果需要在bat的for或goto循环内部频繁调用powershell,那确实比较影响性能。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 6# xczxczxcz


    POWERSHELL转BAT确实有多此一举的感觉.
小文件处理BAT有一定优势.
大数据处理,BAT是无论如何也比不上POWERSHELL的
POWERSHELL的编程有一定技巧,很小的改动,效率可能天壤之别.
多用.NET的命令,尝试用多线程处理任务.
QQ 33892006

TOP

回复 8# yhcfsr

昨天用纯PS写了个,处理550个网页,3-4秒全部搞定。速度很快。

TOP

回复 7# Batcher


    老大,PS 中如何输入一个或多个空行。这个我真的不知道。网络上都是一些去空行的。类似批处理中的 echo;>xxx的功能。

TOP

回复 10# xczxczxcz


是这个意思吗?
  1. "bathome" | Out-File 1.txt
  2. "" | Out-File -Append 1.txt
  3. "net" | Out-File -Append 1.txt
复制代码
1

评分人数

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 11# Batcher


    你这是添加空格或添加NET  我想要在文章段落末尾添加空行。比如文章段落中间有个空行一样。不是添加空格。

TOP

本帖最后由 xczxczxcz 于 2018-10-31 12:15 编辑

回复 11# Batcher


    我错了,  “” |OUT-FILE 这个可以。

out-file 容易出乱码,要指定编码   我用  add-content  很少乱码。

TOP

回复 13# xczxczxcz


    是的,Out-File 默认使用 Unicode 编码,可以用 -Encoding Default 指定使用系统默认的 ANSI 编码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 yhcfsr 于 2018-10-31 19:52 编辑

回复 10# xczxczxcz
  1. $PSDefaultParameterValues['Out-File:Encoding'] = 'default';#设置文件编码
  2. 'abc'>>d:\1.txt;
  3. ''>>d:\1.txt;
  4. 'abdc'>>d:\1.txt;
复制代码
1

评分人数

QQ 33892006

TOP

返回列表