2014-04-08 109 views
0

好了,所以我有一個腳本:Powershell的重命名文件到原始文件名

gc .\oauthrn.cms | 
    % { 
     [email protected](); 
     $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 | 
    % { 
     [email protected](); 
     $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的新手,但它是一個很棒的工具。

+2

您能否描述一下您實際上想要實現的目標? –

+0

「所以基本上我想重命名文件的原始名稱,但是當我命名ShineyNewFile,oauthrn時,它不會輸出文件中的任何內容。」 – Hituptony

+1

是的,我們可以閱讀,但它仍然沒有意義。你可以'重命名項目ShineyNewFile.txt oauthrn.cms' – Cole9350

回答

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" 
+0

你不確定什麼?我基本上只是第二次添加了另一個文件,這個過程必須對兩個文件進行相同的操作。我不確定修剪每行末尾的最後一根管子與重命名文件有什麼關係......是的,它正是我想要的。我想我大部分都不確定語法反對函數......再次感謝。 – Hituptony

+0

我不確定的是整個'$ a'和'$ b'部分是分開的,然後手動重新加入。它看起來就像你所做的一切就是修剪管道的末端,這是一條線。另外,整個'For($ i = 0'部分都可以用'$ a [0..167] -join「|」'加起來,但是腳本確實不需要這個。 – TheMadTechnician

+0

我得到一個錯誤:Out-File:找不到接受參數'Rename-item'的位置參數@TheMadTechnician – Hituptony