powershell 编集対象を一时的に别の外部コマンドで编集して处理するスクリプト(powershell,python,go)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了powershell 编集対象を一时的に别の外部コマンドで编集して处理するスクリプト(powershell,python,go)相关的知识,希望对你有一定的参考价值。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import os, os.path, sys
import subprocess as sub

def main():
    dirname = "dummy"
    target_list_file = "target_list_file.txt"

    # 編集対象のファイル一覧を取得
    files = os.listdir(dirname)
    # 編集対象の一覧ファイルの作成
    with open(target_list_file, "w") as outfile:
        for f in files:
            f = os.path.join(dirname, f)
            print(f)
            outfile.write(f)
            outfile.write("\n")

    # メモ帳で一覧を開く
    print("open notepad")
    sub.call("notepad.exe " + target_list_file)
    print("notepad is closed.")

    # メモ帳で編集したあとのファイルを読み込む
    with open(target_list_file) as infile:
        # ファイル数が100万とか行くことは
        # (多分)ないのでもう一気に全部読み込んじゃう
        lines = infile.readlines()
        for line in lines:
            sys.stdout.write(line)
    
    print("old file count is", len(files))
    print("new file count is", len(lines))

if __name__ == '__main__':
    main()
$dirName = "dummy"
$targetListFile = "target_list_file.txt"

# 空の一覧ファイルを先に生成
rm $targetListFile
New-Item -ItemType file $targetListFile

# 編集対象一覧を取得してファイルに書き込む
ls $dirName | % { echo $("$dirName\" + $_.Name) >> $targetListFile }
$fileCount = (ls $dirName).Count

# メモ帳で編集
Start-Process -Wait notepad $targetListFile

# 編集後確認
cat $targetListFile
$newFileCount = (cat $targetListFile).Count

echo "old file count is $fileCount"
echo "new file count is $newFileCount"

package main

import (
	"fmt"
	"io"
	"io/ioutil"
	"log"
	"os"
	"os/exec"
	"strings"
)

func init() {
	log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile)
}

func main() {
	dirName := "dummy"
	targetListFile := "target_list_file.txt"

	// 一覧ファイルの削除
	if err := os.Remove(targetListFile); err != nil {
		log.Fatal(err)
	}
	// 空の一覧ファイルの生成
	var b []byte
	if err := ioutil.WriteFile(targetListFile, b, os.ModePerm); err != nil {
		log.Fatal(err)
	}

	// ファイル一覧の取得
	files, err := ioutil.ReadDir(dirName)
	if err != nil {
		log.Fatal(err)
	}
	// ファイル一覧をファイルに書き込み
	for _, file := range files {
		f, err := os.OpenFile(targetListFile, os.O_WRONLY|os.O_APPEND, os.ModePerm)
		if err != nil {
			log.Fatal(err)
		}

		fp := dirName + "/" + file.Name() + "\r\n"
		_, err = io.WriteString(f, fp)
		if err != nil {
			log.Fatal(err)
		}
	}
	fileCnt := len(files)

	// メモ帳の呼び出し
	// TODO: プロセスをロックしてしまって上書き保存できない
	cmd := exec.Command("notepad.exe", targetListFile)
	if err = cmd.Run(); err != nil {
		log.Fatal(err)
	}

	// メモ帳で編集したファイルの中身を読み込む
	b, err = ioutil.ReadFile(targetListFile)
	if err != nil {
		log.Fatal(err)
	}
	newFilesText := fmt.Sprintf("%s", b)
	newFiles := strings.Split(newFilesText, "\n")
	newFilesCnt := len(newFiles)

	fmt.Println(newFilesText)

	fmt.Sprintf("old file count is %d.\n", fileCnt)
	fmt.Sprintf("new file count is %d.\n", newFilesCnt)
}
rm dummy/*
1..120 | % { $num="dummy\" + ([string]$_) + ".zip"; echo "" > $num}

以上是关于powershell 编集対象を一时的に别の外部コマンドで编集して处理するスクリプト(powershell,python,go)的主要内容,如果未能解决你的问题,请参考以下文章

html 悬停(マウスオーバー时に対象を表示して,离すと表示を消す)

xml 【xamDataGrid】固定列あり·ラベルと场别の列ありの一覧を动的に生成するサンプル

sql MySQL的SQLでの外部キー制约を一时的に无效にする

csharp コードの秘诀は吉斯特に移行します。今まではEvernote的に全てまとめていたけれど,吉斯特だとコードのシンタックスハイライトが效いて便利なので,コード部分に关しては要点を使ってみたいと

markdown 外部的grepで指定したパスを検索対象から除く

ruby 忽略をつかって一时ファイルを监视対象から外す来自:https://github.com/guard/guard/issues/316?utm_content = borcoco9b58&am