[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 07/26 10:45 / Filesize : 187 KB / Number-of Response : 837
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【.cmd】 バッチファイルスクリプト %5 【.bat】



1 名前:デフォルトの名無しさん [2009/05/14(木) 11:29:31 ]
前スレ
【.cmd】 バッチファイルスクリプト %4 【.bat】
pc12.2ch.net/test/read.cgi/tech/1229955189/

610 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 16:29:43 ]
>>608
work.tmp が wark.tmp とか work,tmp なのが原因でファイルが存在しないに 1200カパズ。
for の中で遅延展開してない、に 1500ガバス。

そもそも 607 のアドバイスのように echo の結果はどうなのよ?
まさか、表示が流れて読めません、とかいう訳じゃないんでしょ?

611 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 16:46:46 ]
ここに書いた例と実際のバッチが全く別物とか。

612 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 17:32:55 ]
>>610
echoの結果も同じ。
なんでだろ?

613 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 18:08:04 ]
同じって言葉じゃなくて具体例を出せよw

実際に使ってる内容晒したらエラー出て当たり前って内容かもしれないだろ。
おまえさんがその当たり前に気付いてないだけで。

614 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 19:52:01 ]
そもそもバッチファイル理解できてる?
よければ問題が起こる最小限のコード全体を貼ってくれ

615 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 21:30:59 ]
delするのに存在確認は不要だろあほか

616 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 22:11:39 ]
カレントディレクトリから一つ下のサブディレクトリ名を取得する。
それを引数としてあるバッチに渡す。
以上を一つ下のサブディレクトリ全てについて実行するバッチって作れますか?
WSHの方が良いですか?


617 名前:デフォルトの名無しさん [2010/02/01(月) 22:41:36 ]
>>613
試しに
ECHO "%INPUTPATH%hogehoge.txt"
としたら
C:\hogehoge.txt
と¥付きで表示される。

618 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 23:51:27 ]
ありぃ?
分かった。
直前で作ったファイルが書ききれていなかったっぽい。
TIMEOUT1秒入れたらEXISTで見えるようになった。



619 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 01:13:03 ]
>>616
for /d %%I in (*) do (
echo call exec.bat %%I
)

620 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 01:33:15 ]
>>619
すげぇ!こういとも簡単にできるとは…。
ありがとうございます。

621 名前:デフォルトの名無しさん [2010/02/02(火) 01:44:36 ]
すまん。最後にもう一つだけ教えてください。

SET INPUT=%~dpnx1
ECHO %INPUT%
pause

これだけのバッチファイルを作って、このファイルに適当なファイルをD&Dしたら
ファイルネームがフルパスで表示されると思う。

でも、どこでもいいから適当なフォルダに長江 6380.txtってファイルを作って
さっきのバッチファイルにD&Dしてみてくれ。
長江で切れてしまうと思う。

これを回避するにはどうしたらいい?

622 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 02:06:53 ]
切れてないよ

623 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 03:22:16 ]
長江は長過ぎる 黄河にしとけ

624 名前:デフォルトの名無しさん [2010/02/02(火) 08:41:12 ]
>>622
嘘お?
PC3台とも切れるんだが?
ちなみにスペースは全角な。

>>623
さぶぅ

625 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 10:37:47 ]
バッチファイルは全角半角スペース混じりのファイル名を正しく扱える(必要な時にちゃんと""で囲めば)。
そのコードで問題が出るなら明らかに呼び出し側の問題。

626 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 12:24:52 ]
>>625
試しにecho "%INPUT%"
をしても同じ

627 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 12:32:11 ]
>>621
普通なら切れない。

切れるとしたらbatファイルの関連付けでドロップハンドラが壊れているんだろう。

628 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 15:12:55 ]
こういう話だろ
scripting.cocolog-nifty.com/blog/2008/02/post_c740.html



629 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 15:59:28 ]
>>627
pgr

630 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 16:36:56 ]
>>621
半角で例示したりして芸の細かいこと

631 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 19:55:37 ]
バッチファイルにD&Dなんてするなよ
素直にコマンドプロンプトで打てばいいじゃん

632 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 21:10:28 ]
どこでもいいから適当なフォルダに長江&shutdown 6380.txtってファイルを作って
さっきのバッチファイルにD&Dしてみてくれ。

633 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 23:39:00 ]
>>628
ありがと。

>>631
長いバッチで自動化したいから無理なのら。

>>632
さぶぅ。
雪降らせたのお前か。

634 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 02:14:36 ]
バッチファイルにD&Dするかぎり無理なのら。

635 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 02:42:21 ]
ドロップハンドラ作ればええのら。

636 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 14:35:34 ]
Drop on Scriptのドロップハンドラは?

637 名前:デフォルトの名無しさん [2010/02/05(金) 14:35:40 ]
累乗計算バッチだるす。

638 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 21:19:53 ]
2の3乗
3の3乗



639 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 14:26:03 ]
初歩的な質問ですみません。とてつもなく初心者です。

kaigi_20100205.txt
kaigi20100206,txt
20100207kaigi.txt
のようなファイルをrenでリネームさせて、

会議_20100205.txt
会議_20100206.txt
会議_20100207.txt
のように統一させたいと思い、
色々と見よう見真似で
rename.datファイルに

ren kaigi*.txt 会議_*.txt
ren *kaigi.txt 会議_*.txt
といれてみたのですが、

会議_00207kaigi.txt
会議_gi20100206.txt
会議_gi_20100205.txt
という状態になってしまいました。
これは自分のワイルドカードの使い方が根本的に間違っているのでしょうか?
どなたかご教授お願いいたします。

640 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 15:23:12 ]
ワイルドカードはファイル名を保持してない

641 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 16:48:59 ]
「kaigi_*.txt」にマッチしたファイル名を「会議_*.txt」がマッチするように書き換えるのであって、
「会議_(kaigi_*.txtの*に相当する部分文字列).txt」というようにはならない。
そしてdosには「*に相当する部分文字列」を取得する機能はないので、
setなどを利用して、自分で作ってやらなければならない。
例えばこんなふうに:

@echo off
setlocal
set NAME1=%~n1
set NAME2=%NAME1:_=%
if "%NAME1:~0,5%" == "kaigi" (
    echo 会議_%NAME2:~5%.txt
) else if "%NAME1:~-5%" == "kaigi" (
    echo 会議_%NAME2:~0,-5%.txt
)


642 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 17:33:56 ]
@echo off
for %%i in (kaigi*.txt) do (
set NAME=%%i
call ren %%i %%NAME:kaigi=会議_%%
)
for %%i in (*kaigi.txt) do (
set NAME=%%i
call ren %%i 会議_%%NAME:kaigi=%%
)


643 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 19:24:58 ]
setlocal enabledelayedexpansion
for /f %%I in ('dir /b *kaigi*.txt') do @(set a=%%I
set a=!a:kaigi=!
set a=!a:_=!
ren %%I 会議_!a!)

644 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 19:44:18 ]
>640-643
みなさん、ありがとうございます!
試してみましたところ、ばっちり動作しました。
ただ、ばっちり動作しますがプログラムの挙動を自身がまだ理解できてない状態なので
これらを元に色々調べてプログラムを練ってみたいと思います。

645 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 00:23:41 ]
5スレ目でいうのもなんか変だが、

コマンド シェルの概要
technet.microsoft.com/ja-jp/library/cc737438(WS.10).aspx

Windowsヘルプにもあるし、OSごとにリンク先違うけど、ここらへんがテンプレにあっても良くないか?

コマンド ライン リファレンス
technet.microsoft.com/ja-jp/library/cc778084(WS.10).aspx
バッチ ファイルを使用する
technet.microsoft.com/ja-jp/library/cc758944(WS.10).aspx
こっちは、上からリンクあるからイランと思うけど。

646 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 00:24:35 ]
コマンド シェルの概要
technet.microsoft.com/ja-jp/library/cc778084.aspx

アチャー

647 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 00:25:38 ]
orz

648 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 09:53:38 ]
自分の使ってるOSのヘルプならいつでも見れるはずだが、
ヘルプすら読まずに質問するやつが多すぎるという嫌味?



649 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 13:59:37 ]
>>646
Runasなんてあったのかー

650 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 15:52:52 ]
MSのヘルプは探すのが面倒

651 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 16:15:51 ]
ヘルプより掲示板で聞いた方が早いし楽

652 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 01:00:53 ]
WindowsXPのコンソールで、
unixでいうところのsmbclientを使うには、
どのようにしたらよいでしょう?
smbはもともとWindowsのプロトコルで、GUIに統合されているため、
smbclientのコマンドラインプログラムというのがあるのかないのか、
よくわからないのですが、
パスワードつきの他のマシンに起動時に自動接続するのに、
ネットワークドライブに割り当てただけではだめだったので、
それならコンソールでコマンドを実行して接続するか、と考えました。
ご存じでしたらアドバイスをお願いします。


653 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 01:04:43 ]
net

654 名前:デフォルトの名無しさん mailto:sage [2010/02/12(金) 01:21:50 ]
>>653
thanks

655 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 03:13:43 ]
MSのヘルプは詳しいのと詳しくないのと差があるからな
makecabとかまったくわからんしfsutilとか独自すぎて笑える
cmdのヘルプもわかりにくい部類になるだろう
書いてあるのかないのかよくわからんことも多いし

掲示板のほうが楽しいとかはさすがにあれだがw

656 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 21:54:55 ]
あのさあ...
objShell.Run "コマンド1 | コマンド2 | sort"
とかをスクリプトでするとしましょう。
そのとき、途中のコマンドが
.vbs とか .wsf の//job:XXX として、
そのなかに Wscript.Sleep 100 があるとパイプラインが詰まる?
ことないですか?


657 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 22:37:57 ]
それ詰まるもなにもパイプラインにならんだろ?


658 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 22:48:45 ]
えー...。 ごめーん
コマンド1 とかは
Cscript //nologo XXX.vbs で、
XXX.vbs や YYY.wsf //job:ZZZ 内部では
Wscript.Echo とか Wscript.StdOut.WriteLine 使用

ではどうだろう。
あげたれ




659 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 23:07:30 ]
コマンド1がパイプラインの機能を持ってるのか?という話だが?
cmd /cならパイプラインの機能を持ってるが?

660 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 23:29:58 ]
あああ、そのとおり
objShell.Run "cmd.exe /c " & "コマンド1 | " & ...
でした。

で、コマンド1にWscript.Sleep 100 があるとコマンド1で止まっちゃうような。
気がするのです

661 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 00:09:24 ]
ないです

662 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 21:36:31 ]
ないですね。はてな

663 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 13:52:42 ]
教えてください。

set AAA=D:\WORK

set FOLDER=%1
set INFNAME=%2
set OUTFNAME=%3

set INFPASS=%FOLDER%\%INFNAME%
set OUTFPASS=%FOLDER%\%OUTFNAME%

copy %INFPASS% %OUTFPASS%

で、%1に「AAA」を渡した場合に、FOLDERに%AAA%が設定され、
結果的に%FOLDER% が D:\WORK となる事は可能ですか?

664 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 14:29:10 ]
>>663
こんな感じかな?
× set FOLDER=%1
○ call set FOLDER=%%%1%%

665 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 18:01:21 ]
>>664
できました。ありがとうございました。

666 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 11:20:25 ]
質問させてください。
パソコンちょっと詳しいからということで、会社の
ネットワーク管理者にされてしまいました。
運の悪いことに、次年度からパソコンの更新が行われ、
Windows XP→Windows 7にOSも変更になりました。
前任の人がWindows XP環境でログインしたときに、
仕事でよく使うフォルダへのショートカットを
ログイン時のバッチファイルで表示させていたのですが、
Windows 7では動作しないみたいなのですorz
Windows 7でバッチファイルでファイルのショートカットを
デスクトップに表示させるにはどうしたらいいでしょうか?
いろいろググッてみましたが、それ用のフリーソフトが
あるみたいなのですが、Windows 7では動きそうにないんです...

667 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 13:05:03 ]
pc12.2ch.net/test/read.cgi/win/1243134619/
管理者スレ

668 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 13:08:37 ]
回答させてください
>ログイン時のバッチファイルで表示させていたのですが、
>Windows 7では動作しないみたいなのですorz
動作するかしないかはっきりさせろ!
実行してみりゃどういうエラーが出てるかわかるだろ?



669 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 13:23:23 ]
>>668
前任の人の設定のままでXPのマシンをログインすると
ちゃんとショートカットでるのですが、7だと、
エラーメッセージも出ず、スルー状態なんです。
(つまり何もおきない)
他のソフトインストールして試して見ます。
このスレの人で、ショートカット表示
させるコマンドライン知っている人い
ましたら、ご教示ください。
おながいしまつ。

670 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 14:29:35 ]
ドメインへのログオンスクリプトならポリシーの適用してない/できてないとか。
そもそもhomeでドメインに参加できないとか。
ショートカット表示の意味がわからない。
エクスプローラ上で表示させる事なのか、リモート資源の接続先をポップアップさせる事なのか。
とにかく5W1Hで明確に書いてくれないと全くわかんね。

671 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 15:20:16 ]
>>670 多分668さんも同一人物
とても親切にしていただいてありがとうございます。
前の設定者はドメインに参加する時点で、windows 2003 server
のActive Direcrory処理の際に、ログオンするときのバッチファイルに
デスクトップにショートカットを表示させるようにしてたみたいです。
というのも、管理者以外はディレクトリ構造も知らないので、
それを全員に分からせてセキュリティレベルを下げるより、
自動的にショートカットを表示してクリックさせるという形に
したようです。確かにパスを追っていけばそのファイルに到達しますが、
わざとそうさせないみたいです。(その方針には私も賛成します)
長文すみません。

672 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 15:22:13 ]
で、デスクトップへ通常使うけど、
パスを探られたくないフォルダへの
ショートカットを入れたいということです。
パソコンしかさわったことないので、
こういう具体的かつ実践的なご指摘はとても
勉強になります。ありがとうございます。

673 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 17:01:32 ]
ポリシー設定のなかにもデスクトップの表示に関する項目があった気がする
このスレ的にはログオンスクリプトの中でNET USEで接続しているんだろうな位・・・もしかするとSUBST?

674 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 17:24:57 ]
ありがとうございます。
明日は日曜ですが、隠れ出社して試してみます。

675 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 19:12:15 ]
バッチからショートカットを作るのはむずかしかろ
インターネットショートカットならかんたん
(
echo;[InternetShortcut]
echo;URL=\\server\sharename\folder
) > desktop\hoge.url

676 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 19:34:54 ]
どういう風に作ってたかしらんけど、フォルダ構造が変わったからじゃないの?
大抵は新しいパスへリダイレクトしてくれるけど、AllUsers→Publicの部分はうまくいかない模様

XP以前:C:\Documents and Settings\All Users\Desktop
Vista以降:C:\Users\Public\Desktop

677 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 20:15:31 ]
>>676
さすがに会社のサーバ?でユーサフォルダ以降のフォルダ使わないだろw
まさか、な・・・?

678 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 00:15:40 ]
>>675-677
ヒントありがとうございます。
まさかもありえるのでちょっとやってみます。



679 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 05:55:24 ]
規模にもよるけど引継ぎ書とか運用手順書とか必要でしょ。
次の人に渡すにしても。
前任者に要求しとかないとまずいね。

680 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 12:55:36 ]
「ログオンするときのバッチファイル」を、クライアントのWindows7マシン上にコピーして
コマンドラインから実行してみたらエラー内容が分かるんじゃない?

681 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 18:47:20 ]
みなさんありがとうございます。
バッチファイルが別のバッチファイル呼び出すような
入れ子構造になっていることが判明し、解析に手間取ってます
というか、そもそもDOSのコマンド知らないorz
一から調べていますので少々時間くださいまし。

682 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 19:37:11 ]
みなさんヒントありがとうございました。
2ch落ちたので、その間にいろいろ調べて
見ました。問題が2点あって、一つが
>>676 さんのご指摘に近く、
Xp「デスクトップ」→7「Desktop」
Xp「NetHood」→7「AppData\Roaming\Microsoft\Windows\Network Shortcuts」
Xp「スタート メニュー\プログラム」→「Microsoft\Windows\Start Menu\Programs」
に書き換えるのと、
>>670 673 さんのご指摘に近く、
Xpだとアクセス権のないフォルダ内の実行ファイルも実行できていた
のが、7だとアクセス権がないフォルダのファイルはスルーされること
が問題で、それらを訂正したら何とか動いてガッツですた。
(3日かかりますた。)

ちなみに、それで0からDOSコマンド勉強始めたのですが、
前任者は、ショートカットをアクセスされてもいいフォルダにつくって
そのショートカット自体をファイルとしてコピーするということで
ショートカットの自動表示をしていました。
大変勉強になりました。また、機会がございましたら、
質問させていただければ幸いです。
(ここから後は管理者スレの内容になりそうなので、
純粋にバッチファイルに関する内容の時にまた来ます。)

ありがとうございました。

683 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 22:56:17 ]
cmdでlinuxの mkfifo hoge 的なことってできますか?

684 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 00:20:27 ]
普通のファイルで1 writer n readerができるが?

685 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 21:13:13 ]
CreateNamedPipe()で作れば?

686 名前:デフォルトの名無しさん [2010/03/07(日) 19:34:58 ]
Jドライブの直下のlhacaフォルダの下にLhaca.exeという圧縮ファイルがあります
それをつかってJドライブ直下にあるaaaフォルダを圧縮してデスクトップに出力させたいのですが
どうもうまくいきません
どこが悪いかを教えてください

cd J:\lhaca
Lhaca.exe temp.zip J:\aaa

687 名前:デフォルトの名無しさん mailto:sage [2010/03/07(日) 23:14:06 ]
もしカレントドライブがC:の場合はcdでJ:\lhacaを指定しても
そのあと j: でカレントドライブを変更しないと相対でlhaca.exeを入力したら
カレントドライブ(C:\)のカレントディレクトリでlhaca.exe探しちゃうけどそこは大丈夫?
もしそれが問題なら

j:
cd J:\lhaca
Lhaca.exe temp.zip J:\aaa

にすべき。これで違ったらそれはLhaca.exeの問題かも

688 名前:デフォルトの名無しさん [2010/03/07(日) 23:28:57 ]
有り難うございます
既にカレントドライブはJになっています。
Lhacaは普通に手で実行すると普通に開くのですが
Dosコマンドで開こうとするとどうしてもエラーになります



689 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 00:10:36 ]
>>688
詳しいエラー教えて

690 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 02:30:59 ]
+Lhaca 0.76 を落として試してみたけど
Windows7 x64で実行するとファイル名バグるな
(Lhaca.exe temp.zip readme.txt だと「(」名の空フォルダができるだけ
 Lhaca.exe .\temp.zip .\readme.txt とすると圧縮はできるけど「(.zip」という名前になる)
デラックス版(1.24)も試してみたが、こちらは空フォルダすら作れなかった

そもそもマニュアルにコマンドライン引数について何の記述もないし、サポート外の機能のようだ
7-Zipとかコマンドラインに正式に対応してるアーカイバ使った方がいいんでない?

691 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 02:52:16 ]
>>690
そうそう。俺もWindows7 x64 だが同じ状況。
Lhaca.exe temp.zip J:\aaa の temp.zipが問題だねえ
これを抜いて Lhaca.exe J:\aaa で圧縮するとaaa.zipで圧縮されるから
圧縮ファイルの名前=圧縮するファイルまたはフォルダ だね
そもそもzipで圧縮されずにlzhで圧縮されるようだ

もしJ:\aaaのフォルダをtemp.lzhにしたいなら

ren %2 %1
Lhaca.exe %1
ren %1 %2

上記のコマンドをLhaca.bat かなんかに保存してLhaca.exeと同じフォルダに置き、
Lhaca.bat temp aaa 
と入力すればデスクトップにtemp.lzhが作成される。
問題点は解凍した時にtempというフォルダになってしまう事か。
圧縮ファイルをrenできればいいけどデスクトップに圧縮されるからOSの関係上、
XPだと デスクトップ   vista/7 だと Desktop になって環境によってリネームできない。

結局は>>690が言っているように別のアーカイバ使った方が良いよってこと。

692 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 03:44:39 ]
文字を入力させて、その文字でファイル名を判断して該当のフォルダに移動するバッチプログラムは需要ある?
別の言語では時々見るんだけどコマンドプロンプトでやってるの見たことないからさ

blog-imgs-42.fc2.com/s/h/t/shtpg/fri.txt

693 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 03:57:06 ]
>>691
圧縮形式や作成先はLhaca自体の設定(レジストリ)に依存するようだよ
Lhacaはコマンドラインで使わないほうがいいな

694 名前:693 mailto:sage [2010/03/08(月) 04:00:46 ]
と思ったらレジストリじゃなくて
"C:\Windows\Lhaca.ini"
なんてのが勝手に作成されてた

行儀が悪すぎる!

695 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 08:24:06 ]
>>686
↓横レスだが、ZIP形式の代わりにLZH形式で圧縮するなら、この二つを併用して…
ttp://www.vector.co.jp/soft/win95/util/se028209.html
ttp://www.vector.co.jp/soft/win95/util/se020193.html

例えばWindowsXPの場合、"Lha32.exe"が"C:\WINDOWS"フォルダ直下またはカレントフォルダ、
"UNLHA32.DLL"が"C:\WINDOWS\SYSTEM32"フォルダ直下または"Lha32.exe"と同じフォルダに
存在する状態で、以下のコマンドラインを打ち込めばOKなんだけどね。

LHA32 A /D1 "%USERPROFILE%\デスクトップ\macros.lzh" "J:\aaa\*"

696 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 08:33:40 ]
>695をちょっと訂正。
macros.lzh → aaa.lzh

いずれにせよ"%USERPROFILE%\デスクトップ\"を指定するのがポイント。
ただし「窓の手」などでデスクトップのフォルダを任意のフォルダに変えてる場合、この手段は使えない。

697 名前:デフォルトの名無しさん [2010/03/08(月) 23:24:41 ]
>>691
バッチというかコマンドラインでやっても問題ない
アーカイバってどんなのがあるの?

一見しただけじゃわからないからな

698 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 01:03:50 ]
有名どころならWinRARとか7zipでもできるよ



699 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 01:31:57 ]
コマンドラインならundll.exe使っとけ。統合アーカイバDLLならどれでもおk。

700 名前:693 mailto:sage [2010/03/09(火) 01:48:24 ]
圧縮できればいいのなら makecab という手もある

701 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 02:27:44 ]
C:\Program Files\Windows Resource Kits\Tools\compress.exe /?
Syntax:
COMPRESS [-R] [-D] [-S] [ -Z | -ZX ] Source Destination
COMPRESS -R [-D] [-S] [ -Z | -ZX ] Source [Destination]
Description:
Compresses one or more files.
Parameter List:
-R Rename compressed files.
-D Update compressed files only if out of date.
-S Suppress copyright information.
-ZX LZX compression. This is default compression.
-Z MS-ZIP compression.
Source Source file specification. Wildcards may be
used.
Destination Destination file | path specification.
Destination may be a directory. If Source is
multiple files and -r is not specified,
Destination must be a directory.
Examples:
COMPRESS temp.txt compressed.txt
COMPRESS -R *.*
COMPRESS -R *.exe *.dll compressed_dir

702 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 15:34:51 ]
CMDで↓の様なトランザクション処理はどのように記述すればよいのでしょうか?
これがないと怖くて処理が書けないのですが。

PowerShell 2.0の新機能(5) ――トランザクション編(1/3):CodeZine
codezine.jp/article/detail/4944

703 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 16:31:12 ]
@echo off
powershell syori.ps1

704 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 17:02:59 ]
Parameter List:
-R Rename compressed files.
-D Update compressed files only if out of date.
-S Suppress copyright information.
-ZX LZX compression. This is default compression.
-Z MS-ZIP compression.
Source Source file specification. Wildcards may be

705 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 17:13:21 ]
図解入門 よくわかる最新データ圧縮技術の基本と仕組み
―情報圧縮技術とアルゴリズムの基礎講座
How‐nual Visual Guide Book

圧縮アルゴリズム―符号化の原理とC言語による実装 C magazine


706 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:10:47 ]
Windows Vistaのバッチファイルについて質問です。
EXEの起動でパラメータを渡す際スペースがあるものは""
で囲むと思っていたのですが
test.exe "C:\Dir 1\"
とすると最後の\が消えて
C:\Dir 1"
として受け取ってしまうようでした
試しにVCで__argvを確認してもそうなっているようでしたが
どんな書式規則でこうなるんでしょうか?




707 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:19:37 ]
そういやウチのWinXP(SP3)では以下のようにVBScriptファイルを起動すると、
ちゃんと"C:\Dir 1\"と受け取ってくれたよ。
確かWin95/98/Me/NT/2000でも同じ挙動だったはず。

test.vbs "C:\Dir 1\"

708 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:30:02 ]
>>707
確認してみましたが、確かにVBSだときちんと受け取ってますね・・。
理由は気になりますが、書式として間違っていたわけではないと
わかっただけで大収穫です。
ありがとう。




709 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 14:19:30 ]
>>706
test.exe "a b c d"の中に"を入れるときは、\"でエスケープするだよ
test.exe "a \"b c\" d"

710 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 19:29:21 ]
>>709
おお!なるほど!エスケープを使えたとは知りませんでした。
すっきり解決しました。ありがとう。








[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<187KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef