Bagaimana cara membuat skrip '' droplet '' di Win7 yang menjalankan tugas Notepad ++ pada file CSV

0

Baru-baru ini saya mengajukan pertanyaan tentang bagaimana melakukan sedikit tugas 'Cari & Ganti' yang rapi pada file basis data media CSV saya (tugas yang harus saya lakukan di tempat kerja setiap hari). Pertanyaan dijawab di sini jika ada yang tertarik dengan detail.

Saya sekarang ingin dapat dengan mudah menyeret dan meletakkan file CSV saya ke tetesan di desktop yang melakukan tugas Temukan dan Ganti Notepad ++ dengan cepat dan mudah, jadi saya dapat mendelegasikan tugas ini ke lebih banyak anggota staf junior pada saat saya sedang jauh.

Pertanyaan:

Bagaimana cara membuat tetesan di Win 7 yang menjalankan perintah 'Temukan & Ganti' berikut pada file CSV apa pun yang dijatuhkan?

masukkan deskripsi gambar di sini

Teks:

Menemukan apa:

^([^,]*,(\d\d)_[^,]*,[^,]*)(?<!_\d\d),

Ubah dengan:

$1_$2,

Periksa: Bungkus

Periksa: Ekspresi reguler

Jalankan: Ganti Semua

Saya membayangkan bahwa ini bisa berupa skrip batch (atau skrip apa pun) yang akan menerima file CSV saya sebagai file input dengan hanya menyeretnya ke skrip.

Myles
sumber
Apa sebenarnya 'tetesan'? Apakah sama dengan Shortcut?
Berend
Hai, saya merujuk pada skrip yang dapat menerima file input dengan menyeret dan menjatuhkan file CSV saya ke dalamnya. Saya pikir ini bisa menjadi skrip batch yang akan menerima file "% ~ 1" dan buka di Notepad ++ untuk menjalankan perintah yang saya minta, namun saya benar-benar tidak cukup berpengetahuan di bidang ini untuk mengetahui apa hal terbaik untuk dilakukan disini adalah? saya akan mengedit pertanyaan saya lebih lanjut. Terima kasih sebelumnya.
Myles
Saya mengerti. Sejauh yang saya tahu Notepad ++ tidak memiliki opsi seperti itu ( docs.notepad-plus-plus.org/index.php/Command_Line_Switches ), jadi Anda mungkin perlu menggunakan alat lain seperti AutoIt atau versi Windows versi sed. Saya bukan ahli dalam hal ini.
Berend
Saya terbuka untuk semua saran. Terima kasih semuanya atas semua kontribusi untuk ini!
Myles
Saya tidak tahu apakah fungsi Notepad ++ 'Temukan dan Ganti' dapat dipanggil dari baris perintah tetapi saya telah mencatat apa yang harus saya lakukan sebagai makro di dalam Notepad ++. Jadi saya tidak yakin apakah mungkin makro ini dapat dipanggil dalam command line?
Myles

Jawaban:

1

Windows 7 hadir dengan PowerShell v2 yang mendukung Ekspresi Reguler dengan tampilan negatif di belakangnya.

Jika saya menginterpretasikan RegEx Anda dengan benar, Anda ingin menerapkan dua digit yang 99_mengarah ke bidang ke-2 untuk menelusuri juga bidang ke-3, asalkan belum ada _99angka. Dan biarkan garis lain / sisa garis seperti apa adanya.

File batch yang berfungsi sebagai target jatuh (juga menangani beberapa file):

:: SO_1352996.cmd
@Echo off
:Loop
If "%~1" equ "" goto :Eof
If not exist "%~1" (shift & goto :Loop)
Ren "%~f1" "%~n1_Original%~x1"
:: Use PowerShell as a tool to do the replace.
Powershell -NoP -C "(Get-Content '%~dpn1_Original%~x1') -replace '^([^,]*,(\d\d)_[^,]*,[^,]*)(?<!_\d\d),','$1_$2,' | Set-Content '%~f1'
Shift
Goto :Loop

file.csv sebelumnya

test,12_blah,blubb,anything
test,34_blah,blu_34,doesn't matter
test,56_foo,bar,nevermind

dan setelah menjatuhkan batch di atas.

test,12_blah,blubb_12,anything
test,34_blah,blu_34,doesn't matter
test,56_foo,bar_56,nevermind

File asli disimpan dengan ekstensi tambahan .bak

Lotings
sumber
Halo LotPings, saya hanya menyalin kode Anda yang disisipkan dan disimpan sebagai skrip batch. Ketika saya mencoba menyeret menjatuhkan file csv itu membuka jendela cmd dan mengulangi berikut ini 'Nama file duplikat ada, atau file tidak dapat ditemukan'. Terima kasih sebelumnya telah membantu saya!
Myles
Mungkin file yang dimodifikasi atau asli dapat disimpan dengan '_ORIGINAL' atau '_MODIFIED'? Tidak yakin bagaimana mengubah skrip untuk melakukan itu.
Myles
1
Maaf ada perubahan yang hilang sebagai baris terakhir kedua, Dikoreksi.
LotPings
1
Memasukkan _Originallampiran ke nama file
LotPings
Itu tampaknya telah berhasil memodifikasi file database. Saya harus menyalin file ke desktop untuk melakukannya karena jendela perintah memberitahu saya 'Path UNC tidak didukung'. Tempat semua CSV disimpan adalah lokasi jaringan. Ada jalan lain? Saya tidak terlalu sibuk jika terlalu banyak masalah untuk ditangani.
Myles