Powershell将文件重命名为原始文件名

时间:2014-04-08 14:04:53

标签: windows powershell filenames powershell-v3.0

好的,我有一个脚本:

gc .\oauthrn.cms |
    % {
        $a=@();
        $b="";
        $a += $_.split('|'); 
        for ($i=0;$i -lt 168; $i++) 
        {
            $b += $a[$i] + '|'
        } 
        $b
    } |
    % {
        $_.TrimEnd("|")
    } |
    out-file "H:\Documentation\Scripts\Pipe Delimiter Project\ShineyNewFile.txt" -encoding ASCII

gc .\oauthrn1.cms |
    % {
        $a=@();
        $b="";
        $a += $_.split('|'); 
        for ($i=0;$i -lt 168; $i++) 
        {
            $b += $a[$i] + '|'
        } 
        $b
    } |
    % {
        $_.TrimEnd("|")
    } |
    out-file "H:\Documentation\Scripts\Pipe Delimiter Project\ShineyNewFile1.txt" -encoding ASCII

问题

所以基本上我想将文件重命名为原始名称,但是当我命名ShineyNewFileoauthrn时,它不会在文件中输出任何内容。

我想是因为它仍然在out-file语句中查看要输出的文件......

有没有人对此有任何见解?我的假设是否正确?有没有办法处理这个保持我目前使用的语法?我是powershell的新手,但它是一个很棒的工具。

1 个答案:

答案 0 :(得分:0)

所以,我不确定为什么你在脚本中有大部分内容,因为TrimEnd摆脱了你所看到的上一个问题中的所有额外管道字符,但无论如何,这是否符合你的要求?

gc .\oauthrn.cms |
    % {$_.TrimEnd("|")} |
    out-file "H:\Documentation\Scripts\Pipe Delimiter Project\ShineyNewFile.txt" -encoding ascii
Rename-Item "H:\Documentation\Scripts\Pipe Delimiter Project\ShineyNewFile.txt" "oauthrn.cms"

gc .\oauthrn1.cms |
    % {$_.TrimEnd("|")} |
    out-file "H:\Documentation\Scripts\Pipe Delimiter Project\ShineyNewFile1.txt" -encoding ascii
Rename-Item "H:\Documentation\Scripts\Pipe Delimiter Project\ShineyNewFile1.txt" "oauthrn1.cms"