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

[文本处理] 【已解决】求一键调整域名顺序的bat命令

本帖最后由 zhuan1688 于 2022-3-18 09:26 编辑

谢谢各位老师指教,for_flr老师的代码经过5i365老师精简,速度超级快再次感谢各位老师

有一个TXT文档,里面有N个域名,一行一个,但都是反向域名,求一个bat,一键将这些反向域名调整成正常域名。
如:
net.A1
cn.com.A2
be.A3
kr.co.A4
uk.gov.A5
变成
A1.net
A2.com.cn
A3.be
A4.co.kr
A5.gov.uk
有些是com这样的国际域名,有些是com.cn这样的国别域名,格式不统一。
不知能否实现,恳请各位老师指教,无比感激

回复 3# zhuan1688


处理一到三个点的情况,纯BAT不调用PowerShell或其他脚本:
  1. @echo off
  2. cd /d "%~dp0"
  3. (for /f "tokens=1-4 delims=." %%a in ('type "1.txt"') do (
  4.     if "%%d" neq "" (
  5.         set /p =%%d.<nul
  6.     )
  7.     if "%%c" neq "" (
  8.         set /p =%%c.<nul
  9.     )
  10.     echo,%%b.%%a
  11. ))>"2.txt"
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 5i365 于 2022-3-17 18:03 编辑

回复 4# for_flr


  又精简了一下, 这次应该是极致精简了
  1. #@&cls&powershell "gc %~s0|out-string|iex"&pause&exit
  2. gc a.txt |
  3. %{
  4. $x = @()
  5. $s = $_.split('.')
  6. $x += $s[($s.count - 1) .. 0]
  7. $x -join '.' >>ok.txt
  8. }
复制代码
1

评分人数

    • zhuan1688: 速度超级快,谢谢两位大侠技术 + 1

TOP

回复 4# for_flr


大侠好, 我又精简了一下, 现在相对好理解一些了,
  1. #@&cls&powershell "gc '%~0'|out-string|iex"&pause&exit
  2. foreach ($line in gc a.txt)
  3. {
  4. $x = @()
  5. $s = $line.split('.')
  6. $x += $s[($s.count - 1) .. 0]
  7. $x -join '.' >>ok.txt
  8. }
复制代码

TOP

本帖最后由 5i365 于 2022-3-17 17:16 编辑

回复 4# for_flr


    感谢大侠分享, 我精简了一下
  1. #@&cls&powershell "gc '%~0'|out-string|iex"&pause&exit
  2. foreach ($line in gc a.txt)
  3. {
  4. $x = @()
  5. $s = $line.split('.')
  6. ($s.count - 1) .. 0 | %{
  7. $x += $s[$_]
  8. }
  9. $x -join '.' >>ok.txt
  10. }
复制代码

TOP

本帖最后由 qixiaobin0715 于 2022-3-18 12:03 编辑

!!!!!!

TOP

本帖最后由 for_flr 于 2022-3-17 16:58 编辑
  1. #@&cls&powershell "gc '%~0'|out-string|iex"&pause&exit /b"
  2. foreach($line in gc a.txt){
  3.   $x=@()
  4.   $s=$line.split('.')
  5.   ($s.count-1)..0|%{
  6.     $x+=$s[$_]
  7.     if($_ -eq 0){$x -join '.' |tee new_a.txt -append}
  8.   }
  9. }
复制代码
1

评分人数

TOP

本帖最后由 zhuan1688 于 2022-3-17 16:32 编辑
回复  zhuan1688


    最多只有两个点是吗?
Batcher 发表于 2022-3-17 16:26



    您好,管理员大大,最多三个.,如果三个点不好处理,两个点的也行,我把三个点的数据剔除

TOP

回复 1# zhuan1688


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

TOP

返回列表