質問させて下さい。
タイトルのままですが、ファイルの文字コードを、Shift_JisからUnicode(UTF-16LE)に変換してくれるフリーウェアを探しています。
メモ帳を使えば可能な事ですが、何百というファイルを処理したいので、専用のソフトがあれば…、と思っています。
できれば、複数のファイルのD&D→一括変換が出来るものがいいです。
ベクターで探したのですが、適当なものが見つかりませんでした…。
どうかよろしくお願いします。
No.4ベストアンサー
- 回答日時:
84行目ですよね
出力先フォルダを作成しようとして、コケてますね。
出力先は「strNewFileFolder」に指定されている場所です。
既存物では
strNewFileFolder = strFolder & CONVERT_OUT
となっているので、変換元ファイルの下にフォルダを作成しようとしています。
例.
変換前/C:\新しいフォルダ\テキストファイル.txt
変換後/C:\新しいフォルダ\変換後\テキストファイル.txt
元のプログラムが
CONST CONVERT_OUT = "変換後\"
となっている部分を
CONST CONVERT_OUT = "C:\Program Files\s16s\"
としたのですよね?
出力先をフルパス指定したのであれば
strNewFileFolder = strFolder & CONVERT_OUT
を改造して
strNewFileFolder = CONVERT_OUT
としてください。
>82~85行目までの、If文を削除して実行したところ、
復活させておいてくださいね^^;
もし、それでも走らなかったら、変更箇所をおしえてください^^
素早くて的確なレス、本当にありがとうございます!
「変換後」というフォルダ名を、「変換したものを入れたいフォルダのフルパスに置き換えればいいのか…」と、大変な勘違いをしていました。
申し訳ありません!
全て元に戻したところ、無事に動きました!
大変助かりました。
1050YENさん本当にありがとうございました!
No.3
- 回答日時:
まず、#1で挙げたプログラムが用意されていることが必須です。
その上で、以下の手順を行ってください。
手順1.
下に書かれている「Option Explicit」より下のプログラムをメモ帳などに張ってください。
手順2.
先頭の方にある
CONST EXENAME_16_TO_S = "C:\16S.EXE"
CONST EXENAME_S_TO_16 = "C:\S16.EXE"
はExeのパスです。
環境に合わせて変更してください。
手順3.
このサンプルはSJIS→Unicode用になっています。
Unicode→SJIS用したい場合は
「strHENKAN = EXENAME_S_TO_16」
の部分を
「strHENKAN = EXENAME_16_TO_S」
にしてあげてください。
手順4.
ファイルを保存します。
「無題.txt」でも何でもファイル名は何でも良いです。
手順5.
ファイルの拡張子を変更してあげてください。
「無題.txt」→「無題.vbs」
手順6.
あとはファイルを無題.vbsへDDするだけで、変換対象ファイルが存在するフォルダに「変換後」フォルダが作成され、結果を得ることが出来ます。
--------------------------------------------------------------
Option Explicit
CONST EXENAME_16_TO_S = "C:\16S.EXE"'← EXEが置いてある場所 for SJIS変換 環境に合わせて変更してください
CONST EXENAME_S_TO_16 = "C:\S16.EXE"'← EXEが置いてある場所 for Uni変換 環境に合わせて変更してください
CONST CONVERT_OUT = "変換後\"'← 変換後の出力先フォルダ
'-----------------------------------------------
Dim strHENKAN
strHENKAN = EXENAME_S_TO_16'← SJIS から Unicode変換を指定
'パラメータを取得して、メイン実行部を行う
Dim objArgs
Dim oShell
Dim fsoObj
'オブジェクト生成
Set objArgs = WScript.Arguments
Set oShell = CreateObject ("WSCript.shell")
Set fsoObj = CreateObject("Scripting.FileSystemObject")
'メイン実行
Call MainProc(objArgs)
'オブジェクト開放
Set oShell = Nothing
Set fsoObj = Nothing
Set objArgs = Nothing
'-----------------------------------------------
'-----------------------------------------------
'メイン実行部
'-----------------------------------------------
Sub MainProc(arg)
Dim objParam
'パラメータループ
For Each ObjParam in arg
'ファイルであるかをチェック
If fsoObj.FileExists(objParam) Then
'変換メイン実行
Call ConvertExec(objParam)
End If
Next
End Sub
'-----------------------------------------------
'変換メイン
'-----------------------------------------------
Sub ConvertExec(inFileName)
Dim fsoFile
Dim strFolder
Dim strName
Dim strCmd
Dim strNewFilePath
Dim strNewFileFolder
'ファイルオブジェクト取得
Set fsoFile = fsoObj.GetFile(inFileName)
'ファイルオブジェクト取得
Set fsoFile = fsoObj.GetFile(inFileName)
'フォルダパスとファイルパスに分解
strFolder = fsoFile.ParentFolder'フォルダ名
strName = fsoFile.Name'ファイル名
'フォルダパス正規化
If (Right(strFolder,1) <> "\") Then
strFolder = strFolder & "\"
End If
'出力先フォルダを指定(元のファイルの存在しているパスの下のCONVERT_OUTで指定してあるフォルダ)
strNewFileFolder = strFolder & CONVERT_OUT
'出力先フォルダが存在しなければ作成
If Not fsoObj.FolderExists(strNewFileFolder) Then
Call fsoObj.CreateFolder(strNewFileFolder)
End If
'出力ファイル名を設定(元のファイルと名前は一緒)
strNewFilePath = strNewFileFolder & strName
'変換コマンド文字列を作成
strCmd = strHENKAN & " " & Chr(34) & inFileName & Chr(34) & " " & Chr(34) & strNewFilePath & Chr(34)
'変換実行
oShell.run(strCmd)
End sub
ここまでして頂いて、本当にありがとうございます!!!大変助かります!!!
早速、Option Explicit以下の行をvbsファイルとしてD&Dしてみたのですが、84行目にエラーが出てしまってうまく変換できません。私がどこか間違ってしまってますでしょうか?
84行目とは、
Call fsoObj.CreateFolder(strNewFileFolder)
という所なのですが…。
以下のようなエラーメッセージです。
------------------------------------------
行: 84
文字: 1
エラー: ファイルの名前または数が不正です。
コード: 800A0034
ソース: Microsoft VBSprict 実行時エラー
------------------------------------------
最初に代入したCONST CONVERT_OUTには、
exeファイルと同じ場所(C:\Program Files\s16s\)を指定しています。
試しに、82~85行目までの、If文を削除して実行したところ、今度は、
oShell.run(strCmd)
という最後から2番目の行でエラーが起こってしまいました。
エラーメッセージは、「指定したファイルが見つかりません」というものでした。
本当に申し訳ないのですが、お目を通して頂けたらとても嬉しいです…。
No.2
- 回答日時:
VBスクリプト経験ありますか?
Windows上で動くプログラムを書いて、DDで渡すと、コマンドを毎回書かないで実行できます。
サンプル書きますんで、可能だったら使ってみてください。
サンプルちょっとまってね^^;
No.1
- 回答日時:
ご回答ありがとうございます。
ご紹介下さったソフトは一度ためしたのですが、コマンドラインからしか使えないため、あまり時間の節約にならない感じでした…。
私にコマンドラインを活用する知識がないせいなのでしょうか…(現在はコマンドプロンプトにファイルを一個ずつD&Dして行なっています)。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CAD ZSD→DXF変換
-
DTCP-IPファイルをmp4などに変...
-
写真を撮ってxml形式にしたい場合
-
「.rtf」の拡張子が開けないの...
-
BASE64のエンコード時のサイズ...
-
pngファイルをExcelに変換する方法
-
mac です。vob ファイルを mp4 ...
-
BUP・IFO・VOBをMACで開きたい。
-
拡張子OA2のファイルをWord2010...
-
WordなどをPDFに変換したときの...
-
WAVファイルの周波数変換方法を...
-
DXFからJWWに一括変換す...
-
edrwのデータをDXFに変換できま...
-
jpgファイルをpdfのようにつな...
-
mp3の音声ファイルをwavファイ...
-
拡張子「.xwd」を開けるフリー...
-
PDFファイル一括変換ソフト
-
RealJukeboxでのフォーマット変...
-
Canon R6で撮影したRAWデ...
-
拡張子について教えてください
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
写真を撮ってxml形式にしたい場合
-
CAD ZSD→DXF変換
-
mac です。vob ファイルを mp4 ...
-
DTCP-IPファイルをmp4などに変...
-
「.rtf」の拡張子が開けないの...
-
BASE64のエンコード時のサイズ...
-
BUP・IFO・VOBをMACで開きたい。
-
AudacityでMP3をMIDIに変換
-
三四郎ファイル を エクセルフ...
-
WAVファイルの周波数変換方法を...
-
いきなりPDFで文書の切り取り
-
DXFからJWWに一括変換す...
-
自動でpdf化したい
-
拡張子OA2のファイルをWord2010...
-
写真ファイルJPGをDCF形式にし...
-
word作成書類を文面が崩れない...
-
DMRファイルをmpegやwavに変換...
-
ビットマップの色数を変更する...
-
xdwファイルをPDFファイルに変...
-
MT4のEX4ファイルをMQ4ファイル...
おすすめ情報