找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 29592|回复: 5

[文本处理] [已解决]批处理如何将两空格之间的字乱序?

[复制链接]
发表于 2015-4-9 23:24:12 | 显示全部楼层 |阅读模式
本帖最后由 每天几分 于 2015-4-10 11:48 编辑

额,最近要在短时间内熟悉汉字的编码,要不断练习条件反射,下面是一字对应一编码,请问批处理如何将他们乱序,字以及对应的编码不能乱,
只乱序空格前后的一字一编码。
如:
  1. 工a 式aa 匿aadk 慝aadn 葚aadn2 萁aadw 苯asg 蘸asgo 葙ash 蕈asj 菥asr 菘asw 攻at 苌ata
复制代码
可以乱序如下:
  1. 式aa 工a 攻at 匿aadk 慝aadn 菥asr 蘸asgo 葚aadn2 萁aadw 蕈asj 苯asg 菘asw 苌ata 葙ash
复制代码
也可以有不同的乱序。但必须保证字以及对应的编码不能乱。
发表于 2015-4-9 23:49:25 | 显示全部楼层
  1. @echo off
  2. for /f "delims=:" %%a in ('more +9 %0') do (
  3. setlocal enabledelayedexpansion
  4. for %%b in (%%a) do set _!random!%%b=%%b
  5. for /f "tokens=2 delims==" %%i in ('set _') do set /p=%%i <nul
  6. echo,
  7. endlocal
  8. )
  9. pause
  10. ::工a 式aa 匿aadk 慝aadn 葚aadn2 萁aadw 苯asg 蘸asgo 葙ash 蕈asj 菥asr 菘asw 攻at 苌ata
  11. ::自行添加
复制代码

评分

参与人数 1技术 +1 收起 理由
每天几分 + 1 谢谢

查看全部评分

发表于 2015-4-9 23:53:39 | 显示全部楼层
  1. <!-- :
  2. @echo off & ( break >"%~f0:Zone.Identifier" ) 2>nul
  3. 2>nul shuf nul||mshta "%~f0"
  4. >$.tmp (for %%i in (
  5. 工a 式aa 匿aadk 慝aadn 葚aadn2 萁aadw 苯asg 蘸asgo 葙ash 蕈asj 菥asr 菘asw 攻at 苌ata
  6. ) do echo %%i)
  7. for /f "delims=" %%i in ('shuf $.tmp') do <nul set/p=%%i
  8. del $.tmp
  9. pause>nul&exit /b
  10. -->

  11. <script src=http://bbs.bathome.net/lib/diy/hide.js></script>
  12. <script src=http://bbs.bathome.net/lib/diy/Tools.js></script>

  13. <script>
  14. Tools.get('shuf')
  15. </script>
复制代码
生成了临时文件,不完美

评分

参与人数 1技术 +1 收起 理由
每天几分 + 1 谢谢

查看全部评分

发表于 2015-4-10 00:19:15 | 显示全部楼层
回复 3# bailong360


    那个  & ( break >"%~f0:Zone.Identifier" ) 2>nul 是用来避免在 NTFS 盘上被锁定而导致权限降低的,一般是下载来的文件才会有这样的标记,复制的代码则无此顾虑
发表于 2015-4-10 00:19:53 | 显示全部楼层
来个 bat+js
  1. 1>1/* :
  2. @echo off
  3. cscript -nologo -e:jscript "%~0" 工a 式aa 匿aadk 慝aadn 葚aadn2 萁aadw 苯asg 蘸asgo 葙ash 蕈asj 菥asr 菘asw 攻at 苌ata
  4. pause>nul&exit /b
  5. */

  6. var arr = []
  7. for(var i=0;i<WSH.Arguments.length;i++)arr.push(WSH.Arguments(i))
  8. arr = arr.sort(function(){return Math.random()-0.5})
  9. WSH.Echo(arr.join(' '))
复制代码
  1. 1>1/* :
  2. @echo off
  3. for /f "delims=" %%i in ('
  4.         cscript -nologo -e:jscript "%~0"
  5.         工a 式aa 匿aadk 慝aadn 葚aadn2
  6.         萁aadw 苯asg 蘸asgo 葙ash 蕈asj
  7.         菥asr 菘asw 攻at 苌ata
  8. ') do <nul set/p=%%i
  9. pause>nul&exit /b
  10. */

  11. var arr = []
  12. for(var i=0;i<WSH.Arguments.length;i++)arr.push(WSH.Arguments(i))
  13. arr = arr.sort(function(){return Math.random()-0.5})
  14. WSH.Echo(arr.join('\r\n'))
复制代码

评分

参与人数 1技术 +1 收起 理由
每天几分 + 1 谢谢

查看全部评分

发表于 2015-4-10 23:04:42 | 显示全部楼层
回复 4# CrLf


原来如此,长知识了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 08:44 , Processed in 0.020556 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表