免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 文库 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
楼主: rtzd

[文本处理] 怎样根据要求的文件名字,去替换不同的子文件夹里面的文档的名字? [复制链接]

论坛徽章:
0
发表于 2018-07-10 19:06 |显示全部楼层
回复 6# o枫叶o飘零

谢谢解释回复




论坛徽章:
0
发表于 2018-07-10 20:32 |显示全部楼层
# 1 用记事本,保存成unicode格式。文件名为 d:\a.ps1
# 2 修改    /你的目录    和        d:\sx.txt
# 3 运行cmd.exe
# 4 powershell.exe  -ExecutionPolicy Unrestricted -file d:\a.ps1

  1. $事先已准备好的的文档 = 'd:\sx.txt'
  2. $文档 = Get-Content -ReadCount 0 -LiteralPath $事先已准备好的的文档
  3. $files = Get-ChildItem -File -Recurse -path '/你的目录' -Include '*.txt'

  4. foreach ($file in $files)
  5. {
  6.         foreach ($行 in $文档)
  7.         {
  8.                 if ( $行.contains($file.basename) )
  9.                 {
  10.                         Rename-Item -LiteralPath $file.fullname -NewName ($行 + $file.Extension)
  11.                 }
  12.         }
  13. }
复制代码


论坛徽章:
0
发表于 2018-07-11 09:48 |显示全部楼层
回复 12# 本友会机友会摄友会






稍等,我正在找原因。奇怪,上面所有代码,放到另外的盘符文件夹中,运行子文件夹修改名字,都不行




论坛徽章:
0
发表于 2018-07-11 14:38 |显示全部楼层
# 1 用记事本,保存成unicode格式。文件名为 d:\a.ps1
# 2 修改    e:\你的目录    和        d:\sx.txt
# 3 运行cmd.exe
# 4 powershell.exe  -ExecutionPolicy Unrestricted -file d:\a.ps1

    $事先已准备好的的文档 = 'd:\sx.txt'
    $文档 = Get-Content -ReadCount 0 -LiteralPath $事先已准备好的的文档
    $files = Get-ChildItem -File -Recurse -path 'e:\你的目录' -Include '*.txt'

    foreach ($file in $files)
    {
            foreach ($行 in $文档)
            {
                    if ( $行.contains($file.basename) )
                    {
                            Rename-Item -LiteralPath $file.fullname -NewName ($行 + $file.Extension)
                    }
            }
    }

论坛徽章:
0
发表于 2018-07-11 16:53 |显示全部楼层
回复 7# Herowinter



实在是不好意思。请给上上课。


问题:运行代码后,文件名字没有改变

操作过程:
这里我说的具体一点
我的 \bin 在    H:\cygwin\bin    盘符中。      我的文件夹及子文件夹中的文档在     D:\中国

文件夹名字:中国
其子文件夹名字分别是:法国、比利时、克罗地亚、英格兰      共四个


文件夹下面的子文件夹的名字分别如下:

        |--法国
        |
中国--|--比利时
        |
        |--克罗地亚
        |
        |--英格兰


在子文件夹中的.txt文档的名字分别如下:

        |--果洛
法国--|--海北
        |--海晏

           |--海东
比利时--|--海南州
           |--共和

              |--海西
克罗地亚--|--德令哈
              |--格尔木

           |--黄南
英格兰--|--西宁
           |--玉树

我事先已准备好的的.txt文档名字,把这个文档命名是    i   
如下内容:
0975青海果洛藏族(果洛州)
0970青海海北(海北州.海晏)
0972青海海东市(海东)
0974青海海南藏族(海南州.共和)
0977青海海西州(海西.德令哈)
0979青海海西州.格尔木
0973青海黄南藏族(黄南州)
0971青海西宁
0976青海玉树藏族(玉树州)



开始操作:
一、test.sh
两种办法:
1、我把你的7楼的test.sh中的代码,复制到记事本中,改后缀为.sh
2、我把你的7楼的test.sh中的代码,复制到记事本中,改后缀为.bat

二、
1、按照上面第一种办法操作
当test.sh时,我再新建一个.bat  运行内容是    pause >nul   
                                                             sh  test.sh     (这里简化说说,明白意思就行了)。此时,双击bat后即可运行test里面的代码。


2、按照上面一中的第二种办法操作
当test.bat时,此时,直接双击,运行代码。

三、我把这几个运行用的代码,统统放到   D:\中国      这个文件夹里面

包括: test.sh   bat   test.bat   i    共四个。(有没有用无所谓的,反正不影响运行,统统放在里面)


四、运行结果: 输出没有新的改变。失败


五、我把    中国    这个文件夹,放到   \bin    下面,也不行,失败。    反复试验,不行。



















论坛徽章:
0
发表于 2018-07-11 17:04 |显示全部楼层
回复 9# wh7211




麻烦给指导下

参看15楼的内容。操作过程类似。

我把我的文件夹名字,按照你的命名方式,改的和你的一样

a   a1  a2   a3  a4  1      另外,也   cd  a    了。   放在\bin\a

输出没有改变














论坛徽章:
38
双子座
日期:2014-08-06 17:37:19黑曼巴
日期:2016-11-23 11:16:52极客徽章
日期:2016-12-07 14:03:402017金鸡报晓
日期:2017-01-10 15:13:292017金鸡报晓
日期:2017-02-08 10:39:4215-16赛季CBA联赛之新疆
日期:2017-03-24 16:36:1915-16赛季CBA联赛之江苏
日期:2017-04-26 17:19:08黑曼巴
日期:2018-03-07 18:56:5615-16赛季CBA联赛之八一
日期:2018-03-09 10:44:1015-16赛季CBA联赛之江苏
日期:2018-03-12 15:12:1915-16赛季CBA联赛之青岛
日期:2018-03-16 09:13:0515-16赛季CBA联赛之山东
日期:2018-04-27 18:23:05
发表于 2018-07-11 17:15 |显示全部楼层
回复 16# rtzd

sh  -x test.sh贴出执行过程

论坛徽章:
0
发表于 2018-07-11 17:22 |显示全部楼层
本帖最后由 rtzd 于 2018-07-11 17:23 编辑

回复 17# o枫叶o飘零



test. sh: line 2:$'w': command not found
test. sh: line 4: syntax error near unexpected token '$' do\r''

' est. sh: line 4:' do






论坛徽章:
38
双子座
日期:2014-08-06 17:37:19黑曼巴
日期:2016-11-23 11:16:52极客徽章
日期:2016-12-07 14:03:402017金鸡报晓
日期:2017-01-10 15:13:292017金鸡报晓
日期:2017-02-08 10:39:4215-16赛季CBA联赛之新疆
日期:2017-03-24 16:36:1915-16赛季CBA联赛之江苏
日期:2017-04-26 17:19:08黑曼巴
日期:2018-03-07 18:56:5615-16赛季CBA联赛之八一
日期:2018-03-09 10:44:1015-16赛季CBA联赛之江苏
日期:2018-03-12 15:12:1915-16赛季CBA联赛之青岛
日期:2018-03-16 09:13:0515-16赛季CBA联赛之山东
日期:2018-04-27 18:23:05
发表于 2018-07-11 17:31 |显示全部楼层
回复 18# rtzd

贴下你的test.sh

论坛徽章:
0
发表于 2018-07-11 17:38 |显示全部楼层
本帖最后由 rtzd 于 2018-07-11 17:39 编辑

回复 19# o枫叶o飘零

与   test.sh   一样的

2.jpg
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

【CUer福利】柯尼卡美能达2018数字化整合解决方案巡展
智领共创链动价值-2018数字化整合解决方案巡展

2018年11月,柯尼卡美能达携手主流IT网络媒体IT168及旗下ITPUB、ChinaUnix等论坛,特此邀请企业IT管理、运维人员/办公设备采购负责人员共同参与,分享柯尼卡美能达“智领共创链动价值”-2018数字化整合解决方案巡展!现场体验MOBOTIX智能视频监控解决方案!

活动入口>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:wangnan@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP